Redis TTL 与 "allkeys-lru"驱逐政策

标签 redis

我对 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/

相关文章:

java - Redisson新手(Redis java客户端)类型io.netty.util.concurrent.Future无法解析

redis - .NET Core 是否支持 NLog.Redis?

bash - 如何阻止 Bash 脚本因错误而退出

node.js - 无法运行 node-redis-session 库

java - redis 缓存中的自定义名称

redis - 给出 Redis 中特定位置的所有条目

redis - 在 Redis 中,用于从排序集中检索值的命令

node.js - NodeJS+Redis HGETALL 返回undefined

Redis - 在设置之前更快地使用 md5 键

redis - 如何知道 Redis 中的键是否过期?