如何通过memcached存储> 1MB的值?

时间:2016-01-22 14:49:37

标签: python linux django caching memcached

开始时,我使用参数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中。如果您尝试存储超过默认值   最大尺寸,由于速度原因,该值被截断。

0 个答案:

没有答案