消除memcached的30天限制

时间:2010-09-02 16:08:44

标签: memcached

为什么memcached对缓存条目的生命周期施加了30天的限制?

在我的系统中,我总是将生命周期设置为30天,因为这是最大允许值。将其设置为远远超过30天的值将是我的应用程序的理想选择。

有没有办法将“30天”值更改为其他值?

我正在考虑下载memcached源并重新编译它以供我自己使用。我要么将“30”更改为“300”,要么完全摆脱该检查。如果我这样做,我会改变一些会导致memcached出现故障或表现不佳的东西吗?我的期望是允许项目在缓存中保留更长时间,并且当缓存已满时,它们将从缓存中删除。

2 个答案:

答案 0 :(得分:10)

30天是我们从现在开始考虑您指定为TTL的时间的限制。

如果你想要超过30天,没关系,只需使用绝对时间(time() + whatever)。

如果您不希望基于时间的过期,如ConroyP所说,只需使用0

答案 1 :(得分:8)

30天是您可以指定到期日的最长时间,但如果您考虑完全取消到期检查,将到期时间设置为0会不会更简单?这应该意味着数据一直存储到缓存已满,并且已删除以允许插入更新的项目。

来自PHP Memcache docs

参数expire是到期时间,以秒为单位。如果它为0,则项目永不过期(但memcached服务器不保证此项目始终存储,可以从缓存中删除它以便为其他项目腾出空间)。