我对 Redis 缓存的行为有疑问。请澄清-
例如,如果 TTL 设置为 15 分钟,则对于键“xyz”。 并且,如果其在服务器级别的驱逐策略设置为“allkeys-lru”。过期项目(TTL 的原因)是 EXPIRE 还是 WAIT 直到内存已满?
最佳答案
逐出策略仅适用于超过最大内存时发生的情况。只要您在内存限制内, volatile key 就会在它们应该过期的时候过期。
一旦您的内存已满,LRU 算法就会启动,逐出最近最少使用的 key 。在 allkeys-lru
中, key 是否过期以及 TTL 是多少都无关紧要 - 最少使用的项目将被逐出。在 volatile-lru
中,只有过期的 key 才会使用此算法被逐出。
关于Redis TTL 与 "allkeys-lru"驱逐政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35840627/