【发布时间】:2016-06-20 19:40:06
【问题描述】:
我对 Redis 缓存的行为有疑问。请澄清-
例如,如果 TTL 设置为 15 分钟,则为键“xyz”。 并且,如果它在服务器级别的驱逐策略设置为“allkeys-lru”。过期项目(TTL 的原因)是 EXPIRE 还是 WAIT 直到内存满?
【问题讨论】:
标签: redis
我对 Redis 缓存的行为有疑问。请澄清-
例如,如果 TTL 设置为 15 分钟,则为键“xyz”。 并且,如果它在服务器级别的驱逐策略设置为“allkeys-lru”。过期项目(TTL 的原因)是 EXPIRE 还是 WAIT 直到内存满?
【问题讨论】:
标签: redis
驱逐策略仅适用于超过最大内存时发生的情况。只要您在内存限制范围内,易失性密钥就会在它们应该过期时过期。
一旦您的内存已满,LRU 算法就会启动,清除最近最少使用的密钥。在allkeys-lru 中,密钥是否过期以及 TTL 是多少都无关紧要 - 最少使用的项目将被驱逐。在volatile-lru 中,只有过期的密钥才会使用此算法被驱逐。
【讨论】:
volatile-lru 和 allkeys-lru 策略具有相同的效果,对吧?