Azure缓存中是否存在最大对象数(预览)

时间:2012-09-07 11:41:40

标签: caching azure azure-caching

我知道Azure缓存中存在最大内存限制,但是还有最大对象数吗?随着密钥数量的增加,缓存会变慢。

背景

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

我的解决方案:

假设我必须在每个用户的内存中保留Int64value1”和“value2”。

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

实际上,限制是由为群集选择的VM的实例数和大小强加的。

Capacity Planning Guide spreadsheet非常有趣,我用它来比较我们共享缓存服务的当前用法,以便找到匹配的配置(然后比较成本)。

如果您将设置活动对象的最大数量平均对象大小(序列化后)调整到您的方案,您可以注意到建议的配置如何上升。

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