Redis 内存淘汰策略, 气球胀的很大了, 得放点气儿了, 内存也是一样

气球胀的很大了, 得放点气儿了 内存也是一样 🏡

这个世界多可爱呀,有你爱的人,也有爱你的人

如何配置 Redis 内存淘汰策略

Redis 内存淘汰算法的配置是通过 Redis 的配置文件或者 Redis 命令进行配置的。

在 Redis 配置文件中,可以使用以下参数来配置内存淘汰算法:

  1. maxmemory-policy:设置内存淘汰策略,可以选用的策略包括 volatile-lru、volatile-lfu、volatile-random、allkeys-lru、allkeys-lfu、allkeys-random 和 noeviction。
  2. maxmemory-samples:设置采样数量,即 Redis 在执行内存淘汰算法时,随机选取的键数量。

另外,也可以使用 Redis 命令来配置内存淘汰算法。例如,使用以下命令可以将内存淘汰策略设置为 LRU:

redis> CONFIG SET maxmemory-policy volatile-lru

需要注意的是,如果 Redis 的内存已经占满,而且没有任何可以被释放的空间,那么 Redis 会拒绝所有写操作,并返回一个错误信息。在这种情况下,可以考虑增加 Redis 的内存容量,或者通过优化数据结构、过期策略、内存淘汰算法等手段来减少 Redis 的内存使用。

内存淘汰策略

volatile-lru、volatile-lfu、volatile-random、allkeys-lru、allkeys-lfu、allkeys-random 和 noeviction这几种策略是 Redis 内存淘汰算法的不同实现,具体介绍如下:

  1. volatile-lru:在所有设置了过期时间的键中,使用 LRU 算法进行淘汰。这个策略比较适用于缓存一些数据集合,而且集合的生命周期较短的情况下。
  2. volatile-lfu:在所有设置了过期时间的键中,使用 LFU 算法进行淘汰。这个策略比较适用于缓存一些数据集合,而且集合的访问频率比较高的情况下。
  3. volatile-random:在所有设置了过期时间的键中,随机选择一个进行淘汰。
  4. allkeys-lru:在所有键中,使用 LRU 算法进行淘汰。这个策略比较适用于缓存一些数据集合,而且集合的生命周期较长的情况下。
  5. allkeys-lfu:在所有键中,使用 LFU 算法进行淘汰。这个策略比较适用于缓存一些数据集合,而且集合的访问频率比较高的情况下。
  6. allkeys-random:在所有键中,随机选择一个进行淘汰。
  7. noeviction:不使用内存淘汰策略,当内存达到限制时,Redis 会返回错误信息。

需要注意的是,volatile-lru、volatile-lfu、volatile-random 这三种策略只会淘汰过期键,而 allkeys-lru、allkeys-lfu、allkeys-random 则会淘汰所有键,包括未设置过期时间的键。同时,不同的淘汰算法适用于不同类型的数据集合,具体的选择需要根据实际情况进行调整。

默认使用哪种内存淘汰策略

Redis 内存淘汰算法默认开启,Redis默认使用的内存淘汰算法是volatile-lru,即在设置了过期时间的key集合中,按照最近最少使用(LRU)的原则淘汰掉已经过期的key。volatile-lru 策略是针对设置了过期时间的键值对进行淘汰,根据 LRU(Least Recently Used)算法,删除最近最少使用的键值对。如果没有设置过期时间,则采用 noeviction 策略,即不淘汰任何键值对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值