Memcached提供了一个缓存过期时间选项,该选项指定对象在缓存中的保留时间。 假设所有的写入都通过缓存我不明白为什么有人想从缓存中删除一个对象。换句话说,如果所有写入操作都在数据库之前更新缓存,那么缓存永远不会包含陈旧对象,那么为什么要删除它呢?memcached过期时间
一个可能的参数是,如果对象从不删除,则缓存将无限增长,但memcached允许您指定最大大小。达到此大小后,memcached将使用最近最少使用的(LRU)算法来确定要删除的项目。总而言之,如果已经配置了一个明智的最大大小,并且所有写入都通过了缓存,那么为什么要在一定时间后过期对象呢?
谢谢, 唐
我读过的声明有时未过期的密钥实际上可能会在过期的密钥之前从缓存中删除 - 这是为了保持LRU缓存清除算法的有效性而作出的牺牲。换句话说,*不是'最近最少使用'和'不会再使用'之间的区别。到期的密钥在到期时并未实际移除 - 但是在下一次获取请求进入时它们将被清除。所以,简而言之,设置到期日并不一定有助于为未过期的密钥“留出更多空间”。 – 2010-01-22 23:06:34