有两种办法
一、设置redis淘汰策略
Redis定义了「8种内存淘汰策略」用来处理redis内存满的情况:
1.noeviction:直接返回错误,不淘汰任何已经存在的redis键
2.allkeys-lru:所有的键使用lru算法进行淘汰
3.volatile-lru:有过期时间的使用lru算法进行淘汰
4.allkeys-random:随机删除redis键
5.volatile-random:随机删除有过期时间的redis键
6.volatile-ttl:删除快过期的redis键
7.volatile-lfu:根据lfu算法从有过期时间的键删除
8.allkeys-lfu:根据lfu算法从所有键删除
具体操作步骤:
1、获取当前内存淘汰策略:
127.0.0.1:6379> config get maxmemory-policy
可以看到当前使用的默认的noeviction策略
2、获取Redis能使用的最大内存大小
127.0.0.1:6379> config get maxmemory
如果不设置最大内存大小或者设置最大内存大小为0,在64位操作系统下不限制内存大小,在32位操作系统下最多使用3GB内存。32 位的机器最大只支持 4GB 的内存,而系统本身就需要一定的内存资源来支持运行,所以 32 位机器限制最大 3 GB 的可用内存
3、设置淘汰策略
通过配置文件设置淘汰策略(修改redis.conf文件):
maxmemory-policy allkeys-lru
通过命令修改淘汰策略:
127.0.0.1:6379> config set maxmemory-policy allkeys-lru
4、设置Redis最大占用内存大小
#设置Redis最大占用内存大小为100M
127.0.0.1:6379> config set maxmemory 100mb
二、增加内存、进行redis集群
网友回复