目录
淘汰策略
最多使用的是volatile-lru:从过期时间中选择最近最少未使用的数据淘汰
- noeviction: 不删除策略。当达到最大内存限制时, 如果需要使用更多内存,则直接返回错误信息。(redis默认淘汰策略)
- allkeys-lru: 在所有key中优先删除最近最少使用(less recently used ,LRU) 的 key。
- allkeys-random: 在所有key中随机删除一部分 key。
- volatile-lru: 在设置了超时时间(expire )的key中优先删除最近最少使用(less recently used ,LRU) 的 key。
- volatile-random: 在设置了超时时间(expire)的key中随机删除一部分 key。
- volatile-ttl: 在设置了超时时间(expire )的key中优先删除剩余时间(time to live,TTL) 短的key。
过期策略
- 定时过期
- 惰性过期(只有当一个key被访问时,才能判断这个key是否过期)
- 定期过期(定期扫描,扫描到过期的key再丢弃)
比较淘汰策略与过期策略
1.内存淘汰策略和内存过期策略互不影响
2.内存淘汰用来处理内存不足时需要申请额外空间的数据、过期策略用来处理过期的缓存数据