redis 内存数据集大小上升到一定大小的时候,就会实行数据淘汰策略。
配置文件redis.conf
maxmemory-policy voltile-lru
1. noeviction:不淘汰任何数据,当内存不足时,新增操作会报错,Redis 默认内存淘汰策略;
2. allkeys-lru:淘汰整个键值中最久未使用的键值;
3. allkeys-random:随机淘汰任意键值;
4. volatile-lru:淘汰所有设置了过期时间的键值中最久未使用的键值;(常用)
5. volatile-random:随机淘汰设置了过期时间的任意键值;
6. volatile-ttl:优先淘汰更早过期的键值。
在 Redis 4.0 版本中又新增了 2 种淘汰策略:
1. volatile-lfu:淘汰所有设置了过期时间的键值中,最少使用的键值;
2. allkeys-lfu:淘汰整个键值中最少使用的键值。
其中 allkeys-xxx 表示从所有的键值中淘汰数据,而 volatile-xxx 表示从设置了过期键的键值中淘汰数据。
我们可以根据实际的业务情况进行设置,默认的淘汰策略不淘汰任何数据,在新增时会报错。