0

我知道 Azure 缓存中有最大内存限制,但也有最大对象数吗?随着键数量的增加,感觉缓存会变慢。

背景:

我需要为每个用户在内存中保留一些数字(从 db 计算的摘要很昂贵,但动态增加内存却很便宜)。随着并发用户的增长,我担心如果有限制,我可能会超出缓存。

我的预期解决方案:

假设我必须为每个用户保留Int64' value1' 和 ' ' 的内存。value2

将项目缓存为userN_value1, userN_value2, [...]并调用DataCache.Increment以在更改时更新每个计数器的值,如下所示:

DataCache.Increment("user1_value1", 2500, 0, "someregion");

随着用户数量的增长,这可能会导致很多项目。这是我应该担心的事情吗?有没有更好的方法我没有想到?

4

2 回答 2

0

据我所知没有对象限制,你只受内存的约束,如果你的缓存遇到内存压力,它会驱逐对象以释放它,数据删除过程是异步的,并且遵循最近最少使用(LRU)策略

于 2012-09-07T12:40:09.190 回答
0

在实践中,限制是由为集群选择的 VM 的实例数量和大小强加的。

容量规划指南电子表格非常有趣,我用它来比较我们当前对共享缓存服务的使用情况,以便找到匹配的配置(然后比较成本)。

如果您根据您的场景调整最大活动对象数平均对象大小(序列化后)设置,您会注意到建议的配置是如何上升的。

似乎有一个限制:如果您增加要求,您可能会遇到“不支持大于 32 的集群大小。考虑拆分为多个集群”。我假设如果您在集群中需要超过 32 个节点,每个节点都作为一个 ExtraLarge VM,那么您就达到了限制。

于 2012-09-07T13:07:22.083 回答