背景:Redis单线程,数据存放到内存中,如果有大量的数据存储到Redis,未设置淘汰策略的话,Redis服务器存在内存撑爆的危险。
一、六大淘汰策略:
- noeviction:当内存达到阈值的时候,所有引起申请内存的命令都会报错。
- allkeys-lru:在主键空间中,优先删除最近未使用的key(推荐)。
- volatile-lru:在设置过期时间的键空间中,优先删除最近未使用的key。
- allkeys-random:在主键空间中,随机删除key。
- volatile-random:在设置了过期时间的键空间中,随机删除某个key。
- volatile-ttl:在设置了过期时间的键空间中,优先删除更早过期时间的key。
二、相关配置:
- vim nginx.comf
- /maxmemory 查找maxmemory配置位置(小写n查找下一个,大写N查找上一个),根据系统配置及相关线程占用情况填写一个合适的内存大小。
- 打开maxmemory-policy 注释,Redis默认是noeviction配置,修改适合你的淘汰策略。
建议有时间可以看一下redis配置文件,还是挺不错的!