处理方案:
1. 增加内存
2. 搭建Redis集群
3. 内存淘汰策略
内存淘汰策略实现:
设置maxmemory
参数,并指定maxmemory-policy
策略,默认值为noeviction(禁止淘汰,会报错)
maxmemory-policy:
参数 | 说明 |
volatile-lru | 从设置了过期时间的数据集中根据LRU算法进行淘汰 |
volatile-ttl | 与volatile-lru相似,优先删除ttl时间短的key |
volatile-random | 从设置了过期时间的数据中随机淘汰 |
allkeys-lru | 从全体key中选择最近最久未使用的数据进行淘汰 |
allkeys-random | 从全体key中随机淘汰 |
noeviction | 禁止驱逐数据,新写入的数据如果内存不足会报错 |
说明:Redis中LRU是一个近似的LRU算法,默认情况下,redis会先随机选取5个键,并从中选择一个最近最久未使用的key进行淘汰。可通过maxmemory-samples
设置选取个数