当前位置:  开发笔记 > 数据库 > 正文

memcached到期时间

如何解决《memcached到期时间》经验,为你挑选了2个好方法。

Memcached提供缓存过期时间选项,该选项指定对象在缓存中保留的时间.假设所有写入都通过缓存,我无法理解为什么人们想要从缓存中删除对象.换句话说,如果所有写操作都在DB之前更新缓存,那么缓存永远不会包含陈旧对象,那么为什么要删除它呢?

一个可能的论点是,如果永远不会删除对象,缓存将无限增长,但memcached允许您指定最大大小.达到此大小后,memcached将使用最近最少使用(LRU)算法来确定要删除的项目.总而言之,如果已经配置了合理的最大大小,并且所有写入都是通过缓存,那么为什么要在一段时间后使对象失效?

谢谢,唐



1> Ned Batcheld..:

当您不需要精确信息时,到期时间非常有用,您只希望它在一定时间内准确无误.因此,您将数据缓存(比方说)五分钟.需要数据时,请检查缓存.如果它在那里,使用它.如果不是(因为它已过期),那么去重新计算该值.

某些缓存值基于大量数据,使缓存无效或向其写入新值是不切实际的.这通常适用于摘要数据或从大量原始数据计算的数据.



2> Frank Farmer..:

当我第一次开始使用memcached时,我自己很好奇.我们问过在hi5和facebook工作的朋友(都是memcached的重度用户).

他们都说他们通常会使用3小时的默认过期时间作为"以防万一".

    对于大多数物体来说,每3小时重建它们并不昂贵

    如果你有一些错误导致事情保持缓存,否则,这可能会让你免于陷入太多麻烦

所以我想问"为什么?"这个问题的答案.真的,"为什么不呢?".在那里过期并不会花费太多,而且它可能只会帮助确保您不会将过时的数据保留在缓存中.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有