为什么memcached对缓存条目的生命周期施加了30天的限制?
在我的系统中,我总是将生命周期设置为30天,因为这是最大允许值.将其设置为远远超过30天的值将是我的应用程序的理想选择.
有没有办法将"30天"价值改为别的?
我正在考虑下载memcached源并重新编译它供我自己使用.我要么将"30"更改为"300",要么完全摆脱该检查.如果我这样做,我会改变一些会导致memcached出现故障或表现不佳的东西吗?我的期望是允许项目在缓存中保留更长时间,并且当缓存已满时,它们将从缓存中删除.
30天是我们从现在开始考虑您指定为TTL的时间的限制.
如果你想要超过30天,没关系,只需使用绝对时间(time() + whatever
).
如果您不希望基于时间的过期,如ConroyP所说,只需使用即可0
.
30天是您可以指定到期日的最长时间,但如果您考虑完全取消到期检查,将到期时间设置为0会不会更简单?这应该意味着存储数据直到缓存已满并且删除它以允许插入更新的项目.
从PHP Memcache文档:
参数expire
是到期时间,以秒为单位.如果它为0,则项目永不过期(但是memcached服务器不保证该项目始终存储,可以从缓存中删除它以便为其他项目腾出空间).