处理方案:
- 增加内存
- 搭建Redis集群
- 内存淘汰策略
内存淘汰策略实现:
设置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设置选取个数