分布式缓存服务 DCS-Redis实例的数据逐出策略是什么?:Redis实例支持的逐出策略

时间:2023-12-27 19:10:37

Redis实例支持的逐出策略

在达到内存上限(maxmemory)时,Redis支持选择以下8种数据逐出策略:

  • noeviction:在这种策略下,如果缓存达到了配置的上限,实例将不再处理客户端任何增加缓存数据的请求,比如写命令,实例直接返回错误给客户端。缓存达到上限后,实例只处理删除和少数几个例外请求。
  • allkeys-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,使得新添加的数据有空间存放。
  • volatile-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,但仅限于具有“expire”字段集的键,使得新添加的数据有空间存放。
  • allkeys-random:回收随机的键使得新添加的数据有空间存放。
  • volatile-random:回收随机的键使得新添加的数据有空间存放,但仅限于具有“expire”字段集的键。
  • volatile-ttl:回收具有“expire”字段集中的键,且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
  • allkeys-lfu:从所有键中驱逐最不常用的键。
  • volatile-lfu:从具有“expire”字段集的所有键中驱逐最不常用的键。
  • 当没有键满足回收前提条件时,数据逐出策略volatile-lru、volatile-random、volatile-ttl与noeviction策略相同,具体见上文noeviction介绍。
  • 2020年7月之前创建的Redis实例,逐出策略默认为noeviction。2020年7月及之后创建的实例,逐出策略默认为volatile-lru。
support.huaweicloud.com/dcs_faq/dcs-faq-0427031.html