1、增加内存。
不推荐,因为即使加大内存,以后还是会有内存被占满的可能,不能根本解决问题。
2、使用Redis Cluster
3、使用内存淘汰策略
redis2.6+版本,redis.conf中的默认的策略是 noeviction ,一共有八种:
其中,LRU是Least Recently Used的缩写,即最近最少使用;LFU是Least Frequently Used 的缩写,即最不经常使用。
- volatile-lru:当redis耗尽内存时,它在设置了超时的键上应用LRU策略,将最近较少使用的驱逐出去,即便那些键还有剩余时间。
- allkeys-lru:和volatile-lru不同的是,他在所有的键上应用LRU策略,而不区分是否设置了超时时间
注意的是LRU策略是一种不准确的算法,redis不会自动选择最佳的键来驱逐,而是默认选择5个候选键样本并驱逐当中最少使用的那个。如果想提高LRU算法的精确性,我们可以修改配置文件redis.conf中的
指令,也可以在redis命令行执行 CONFIG SET maxmemory-samples <count> 命令设置样本数量,当然提高了样本数量自然会消耗redis更多的cpu资源!这需要你根据自身业务来调整。
config get maxmemory-policy // 查看redis默认过期策略
config set maxmemory-policy volatile-lru // 设置键的驱逐策略
config get maxmemory // 查看redis使用内存大小,注:0表示内存没有限制
info memory // 查看redis的key占用空间
标签:解决办法,策略,Redis,maxmemory,redis,LRU,内存,lru From: https://www.cnblogs.com/beatle-go/p/18040038