Memcached部分限制

为什么在memcached的中存在硬编码部分限制(压缩后的.5 meg)? 有没有人重新编译自己了? 我知道我不需要像这样发出大量的部分,但是这些增加的部分会定期发生,也会造成混乱。

0
2019-05-13 02:42:42
资源 分享
答案: 1

此查询使用了官方FAQ

我可能遇到的memcached有哪些限制? (Wayback Machine)

价格估算:

您可能会在memcache中看到的直接限制是关键和事物维度限制。 钥匙仅限250人。 保存的信息尺寸不能超过1兆字节,因为这是最大的常规尺寸。“

常见问题解答实际上已经更改,目前有2个不同的查询涵盖:

什么是最大密钥长度? (250字节)

一把钥匙的最大尺寸是250个人。 请注意,如果您使用客户“前缀”或类似属性,这个值肯定会少得多,因为前缀被添加到初始键的前面。 更短的密钥通常要好得多,因为它们可以节省内存并且还可以使用更少的传输容量。

为什么物品的尺寸限制在1兆?

啊,这是一个首选的询问!

简要解决方案:因为内存分配器是如何算法作业的。

冗长的解决方案:Memcached是内存存储空间引擎(将来肯定可插拔/调整......),利用一块内存监控方法。 记忆被分成不同维度的片段,从最小数量开始,并且还以近似最大可行值的因子上升。

声明最小值为400字节,最大值为1兆字节,并且因子为1.20:

第1部分 - 400字节部分2 - 480字节部分3 - 576字节......等

这件作品越大,它与前一件作品之间的空隙就越大。 因此,最大值越大,内存存储空间的可靠性就越低。 Memcached还需要为每一个存在的片段预先分配一些内存,因此建立一个具有更大最大值的小尺寸因子肯定会要求更多的悬垂。

还有其他各种原因,你不打算这样做...如果我们谈论一个网站,你也试图存储/加载巨大的价值,你可能会出现故障。 在这个维度上,它需要花费大量的时间来加载并将数据结构解包到内存中,并且您的网站可能也不会很可能执行。

如果您确实打算存储大于1MB的内容,则可以使用修改后的slabs.c:POWER_BLOCK值重新编译memcached,或者使用无效的malloc / free后端。 各种其他指针包括数据源,MogileFS等

0
2019-05-22 12:15:19
资源