Redis有哪些内存溢出控制/内存淘汰策略?

Redis在达到maxmemory上限时会触发相应的溢出控制策略,Redis支持以下六种策略:

  1. noeviction:默认策略,不会删除任何数据,拒绝所有写入操作并返回客户端错误信息,此时Redis仅响应读操作。
  2. volatile-lru:根据LRU算法删除带有超时属性(expire)的键,直到释放足够的空间为止。如果没有可删除的键对象,则回退到noeviction策略。
  3. allkeys-lru:根据LRU算法删除键,无论数据是否设置了超时属性,直到释放足够的空间为止。
  4. allkeys-random:随机删除所有键,直到释放足够的空间为止。
  5. volatile-random:随机删除过期键,直到释放足够的空间为止。
  6. volatile-ttl:根据键值对象的ttl属性,删除即将过期的数据。如果没有即将过期的数据,则回退到noeviction策略。

标签: java, Java面试题, Redis, Java问题合集, Java编程, Java问题精选, Java常见问题, Redis面试题