【问题标题】:Redis TTL vs "allkeys-lru" eviction policyRedis TTL vs "allkeys-lru" 驱逐策略
【发布时间】:2016-06-20 19:40:06
【问题描述】:

我对 Redis 缓存的行为有疑问。请澄清-

例如,如果 TTL 设置为 15 分钟,则为键“xyz”。 并且,如果它在服务器级别的驱逐策略设置为“allkeys-lru”。过期项目(TTL 的原因)是 EXPIRE 还是 WAIT 直到内存满?

【问题讨论】:

    标签: redis


    【解决方案1】:

    驱逐策略仅适用于超过最大内存时发生的情况。只要您在内存限制范围内,易失性密钥就会在它们应该过期时过期。

    一旦您的内存已满,LRU 算法就会启动,清除最近最少使用的密钥。在allkeys-lru 中,密钥是否过期以及 TTL 是多少都无关紧要 - 最少使用的项目将被驱逐。在volatile-lru 中,只有过期的密钥才会使用此算法被驱逐。

    【讨论】:

    • 好答案。也许这是一个修辞问题,但如果我的所有密钥都是易失性的(它们有超时),volatile-lruallkeys-lru 策略具有相同的效果,对吧?
    • Redis如何识别LRU键?
    • @AminShojaei 它为他们的访问时间 IIRC 采样了一堆密钥。
    • 如果没有易失性密钥会怎样?它会回退到 allkeys 来运行 lru 算法吗?
    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 2020-07-10
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多