Redis的内存配置和淘汰策略

内存配置

默认配置:Redis默认不限制内存使用(maxmemory 0),会尽可能占用所有可用内存。生产环境中必须手动配置上限,避免系统资源耗尽。

手动配置

  1. 动态配置(redis服务重启后失效): 启动redis后,连接redis客户端,通过命令配置:

    • 设置内存:config set maxmemory 2GB

    • 查看内存:config get maxmemory(查看到的内存单位是字节)

  2. 静态配置(永久配置)

    redis.conf(在win系统中是redis.windows.conf)中通过maxmemory <bytes>指定:maxmemory 4GB

    如图:

查看当前内存占用:

在redis客户端中通过命令进行查看:INFO memory

淘汰策略

Redis 作为内存数据库,当内存达到 maxmemory 配置的限制时,会根据设定的淘汰策略(Eviction Policy)自动删除部分数据,以腾出空间存储新数据。

Redis 支持 8 种淘汰策略,分为两大类:针对所有键的策略仅针对带过期时间键的策略

策略行为
noeviction内存不足时,直接拒绝写入请求(默认策略)。
volatile-lru设置了 TTL 的键 中,淘汰 最近最少使用(LRU) 的键。
volatile-lfu设置了 TTL 的键 中,淘汰 最不经常使用(LFU) 的键(Redis 4.0+)。
volatile-random设置了 TTL 的键 中,随机淘汰一个键。
volatile-ttl设置了 TTL 的键 中,淘汰 剩余存活时间最短(TTL 最小) 的键。
allkeys-lru所有键 中,淘汰 最近最少使用(LRU) 的键。
allkeys-lfu所有键 中,淘汰 最不经常使用(LFU) 的键(Redis 4.0+)。
allkeys-random所有键 中,随机淘汰一个键。

 

查看淘汰策略

通过config get maxmemory-policy命令查看

 

配置redis淘汰策略

1. 动态修改(无需重启 Redis)

在 Redis 客户端中使用config set maxmemory-policy <policy>命令,可以动态修改淘汰策略。例如,将淘汰策略修改为allkeys-lru

config set maxmemory-policy allkeys-lru

执行成功后会返回OK。不过这种修改方式只在 Redis 服务器重启前有效,重启后会恢复为配置文件中设置的策略。 

2. 静态修改(通过配置文件修改,重启后生效)

打开 Redis 配置文件redis.conf,找到并修改maxmemory-policy参数。例如:

 # 修改为你需要的淘汰策略
 maxmemory-policy volatile-ttl

如图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值