【问题标题】:What is memcached expiration behavior when keys have different time frames and the cache is full?当键具有不同的时间范围并且缓存已满时,memcached 的过期行为是什么?
【发布时间】:2014-04-25 09:36:50
【问题描述】:

我知道redis会自行过期keys,释放内存 并且想知道 memcached 的行为是否相同。


假设我有一种很少过期的缓存键 (我们称它们为 A),另一种每 5 分钟到期一次, 使用 Ruby on Rails 的 expires_in: 5.minutes(我们称它们为 B)

如果 B 键太多,memcached 会丢弃 A 键吗?

例如,如果我可以在我的商店中存储 5 个值,那么一个场景可能是:

  • 存储 A1(剩余 4 个值)
  • 存储 B1(剩余 3 个值)
  • 存储 B2(剩余 2 个值)
  • 存储 B3(剩余 1 个值)
  • 存储 B4(剩余 0 个值)

此时B1、B2、B3都过期了(因为它们的生命周期是如此 短)。


如果我在缓存中存储另一个元素会发生什么?会掉A1吗 因为它是最古老的,或者它会知道 B 键是短暂​​的并且 首先使用他们在记忆中的位置?

【问题讨论】:

标签: caching memcached cache-control


【解决方案1】:

Memcached 使用 LRU(最近最少使用)机制来确定当要存​​储的对象数量超过可用空间时哪些现有对象过期。您可以进一步参考以下链接以了解其密钥到期机制: http://docs.oracle.com/cd/E17952_01/refman-5.6-en/ha-memcached-using-expiry.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 2017-08-18
    • 2014-08-14
    • 1970-01-01
    • 2021-06-13
    • 2014-10-16
    • 2014-08-18
    相关资源
    最近更新 更多