Redis是基于内存的高性能键值存储系统,它将数据全部加载在内存中进行读写操作。但内存资源是有限的,当Redis使用的内存接近或超过系统可用内存时,就需要通过一些策略来释放内存空间。
数据淘汰策略
Redis的内存数据淘汰策略主要分为三类:针对过期键的淘汰策略、针对所有键的淘汰策略、禁止淘汰的策略。
1、针对过期键的策略主要有以下几种:
- volatile−lru:从设置了过期时间的键中,选择最近最少使用的键进行删除(最长时间未使用)。
- volatile−lfu:从设置了过期时间的键中,选择最少使用次数的键进行删除。
- volatile−ttl:从设置了过期时间的键中,选择剩余时间最短的键进行删除。
2、针对所有键的策略主要有以下几种:
- allkeys−lru:从所有的键中,选择最近最少使用的键进行删除。
- allkeys−lfu:从所有的键中,选择最少使用次数的键进行删除。
- allkeys−random:从所有的键中,随机选择一个进行删除。
3、禁止淘汰策略:
- noeviction:此项为默认设置。若数据达到了最大内存限制,再向Redis中写入数据时会报错。
淘汰策略配置
1、maxmemory
- K、M、G:1K=1000字节、1M=1000K、1G=1000M。
- KB、MB、GB:1KB=1024字节、1M=1024K、1G=1024M。

2、maxmemory−policy noeviction:默认禁止淘汰,可根据需要修改。
