试题答案

更新日期:2023-11-16

Redis提供了多种内存淘汰策略,以便在内存不足时决定哪些键被删除。这些策略可以在Redis配置文件中通过maxmemory-policy选项进行设置。Redis提供的淘汰策略包含以下几种:

  • noeviction:这是默认策略,当内存不足以容纳更多数据时,新的写入会报错。
  • allkeys-lru:当内存不足时,根据最近最少使用(Least Recently Used,LRU)算法删除键。
  • volatile-lru:在内存不足时,根据LRU算法删除设置了过期时间的键。
  • allkeys-random:在内存不足时,随机删除键。
  • volatile-random:在内存不足时,随机删除设置了过期时间的键。
  • volatile-ttl: 在内存不足时,首选删除TTL(Time To Live)值较小的键,即选择剩余过期时间最短的键进行删除。

在Redis4.0版本之后,两种新的内存淘汰策略被引入:

  • allkeys-lfu:当内存不足时,使用最少使用(Least Frequently Used, LFU)算法删除键。
  • volatile-lfu:当内存不足时,使用LFU算法删除设置了过期时间的键。

以上淘汰策略只在已经达到配置的最大内存(maxmemory配置项)时才会生效。如果未设置maxmemory,那么在达到物理内存限制之前,Redis不会主动淘汰任何键。


发表评论

评论数量:0