在仿真环境中,出现redis进程挂掉问题,查看问题日志,发现为内存溢出,导致linux kill 掉redis服务。
提供限制redis限制内存解决该问题:
Redis 提供了几种方法来限制内存使用,以下是一些常用的配置和相关的命令:
1、限制 Redis 的最大内存使用量
配置文件设置
在 Redis 的配置文件中,你可以设置 maxmemory 指令来限制 Redis 的最大内存使用量。例如,要限制 Redis 使用 100MB 内存,你可以在 redis.conf 文件中添加以下行:
maxmemory 100mb
运行时配置
2、内存淘汰策略(内存回收)
在Redis配置文件中找到或添加以下行:
maxmemory-policy allkeys-lru
3、重启redis服务
根据1、2 修改redis配置文件后,需重启redis服务才可生效。
systemctl restart redis
当 Redis 达到内存限制时,它会根据配置的淘汰策略来决定如何处理新的写入操作。可用的策略有:
noeviction: 不进行淘汰,当内存不足时,新写入操作会报错。
allkeys-lru: 当内存不足以容纳更多数据时,使用最近最少使用算法来淘汰键。
allkeys-random: 随机淘汰键。
volatile-lru: 只对设置了过期时间的键进行最近最少使用算法的淘汰。
volatile-random: 随机淘汰设置了过期时间的键。
volatile-ttl: 淘汰设置了过期时间的键,优先淘汰生存时间(TTL)短的键。
设置淘汰策略: