我知道memcached中的条目默认长度限制为1M。并且可以通过在启动守护程序时传递-I
来配置此值。当我编写客户端时,我想保护我的用户不要传入太大而无法容纳的值。我运行了一些测试,发现我的机器上的item_size_max和key_length + value_lenght之间有一个71 bytes
边距。
我默认为STAT item_size_max 1048576
,
我投入byte[] key = new byte[250]; byte[] value = new byte[1048255];
成功,1048576-250-1048255 = 71
我输入byte[] key = new byte[250]; byte[] value = new byte[1048256];
失败了。
尝试了多个总缓存大小,多个最大项目大小限制和多个密钥长度。在我的密钥长度和值之间以及item_size_max之间总是有71个字节的余量。
我想知道如何计算出可以放入的最长值,而不是条目的长度。
干杯!提前谢谢。
答案 0 :(得分:0)
得到了github / memcached问题的答复 https://github.com/memcached/memcached/issues/334
简而言之