开始时,我使用参数memcached 1.4.1
安装了-I 2m
,但它无效。然后我安装了memcached 1.4.25
,-I 2m
仍然无效。在django中,cache.set(key,value)
当值大小超过1 MB时,它返回None
,并且没有值存储在缓存中。
根据一些文章,我可以将大值存储到多个键中,每个值小于1MB,它可以工作。但密钥管理存在问题。
然后我修改了源代码memcached.c
:
settings.item_size_max = 1024 * 1024; /* The famous 1MB
反映:
settings.item_size_max = 5 * 1024 * 1024; /* The famous 1MB
重新编译后再次失败。它仍然不存储大于1M的值。
如何通过memcached
成功存储> 1MB密钥?
版本:
CentOS 7, python 2.7.5, django 1.7
默认的最大对象大小为1MB。在memcached 1.4.2及更高版本中, 您可以使用-I命令行更改对象的最大大小 选项。对于此之前的版本,要增加此大小,您必须这样做 重新编译memcached。您可以修改POWER_BLOCK的值 在源内的slabs.c文件中。在memcached 1.4.2和 更高,您可以使用配置最大支持的对象大小 -I命令行选项。例如,增加最大值 对象大小为5MB:
$ memcached -I 5m
如果对象大于最大对象大小,则必须手动 拆分它。 memcachedis非常简单:你给它一个密钥和一些数据吧 尝试将其缓存在RAM中。如果您尝试存储超过默认值 最大尺寸,由于速度原因,该值被截断。