数据淘汰机制
为了更好的使用内存,让内存中存储的更多是热点数据,redis设计了内存数据的淘汰机制。
淘汰过程
- 根据配置文件中设置的最大内存来判断是否需要开始淘汰数据
- 若某次操作(SET)使内存超过峰值,那么redis会根据设置的淘汰策略,淘汰一部分数据,回收一些内存
淘汰策略
- no-enviction
禁止淘汰数据,对写的操作返回一个错误 - allkeys-random
在所有键中,随机淘汰一个键 - volatile-random
在所有键中,随机淘汰一个过期的键 - volatile-ttl
在过期的键中,淘汰最早过期的键 - allkeys-lru
在所有键中,淘汰最近最久未使用的键 - volatile-lru
在过期的键中,淘汰最近最久未使用的键
相关配置
# 设置最大内存
# 0表示不限制
# 以K和KB来解释单位:1K表示1000字节、1KB表示1024字节
maxmemory 512MB
# 超过最大内存后,采用的淘汰策略
# 默认no-enviction
# 可选项no-enviction、allkeys-random、volatile-random、volatile-ttl、allkeys-lru、volatile-lru
maxmemory-policy no-enviction
总结
暂无使用心得