在Redis配置文件(redis.conf)中,maxmemory-policy是一个非常重要的配置选项,它用于设置当Redis内存使用达到指定的最大值时,如何进行内存回收和淘汰策略。当Redis的内存使用量超过maxmemory设置的最大值时,Redis会根据maxmemory-policy指定的策略来删除一些键值对,以释放内存空间。
maxmemory-policy有以下几种可选值:
noeviction:默认策略,当内存达到最大值时,不再进行任何淘汰操作,新的写入操作会返回错误。allkeys-lru:从所有键中使用LRU(Least Recently Used,最近最少使用)算法进行淘汰。volatile-lru:仅从设置了过期时间的键中使用LRU算法进行淘汰。allkeys-random:从所有键中随机淘汰数据。volatile-random:仅从设置了过期时间的键中随机淘汰数据。volatile-ttl:从设置了过期时间的键中淘汰剩余生存时间(TTL,Time To Live)最短的键。配置示例:
maxmemory 256mb
maxmemory-policy allkeys-lru
在这个示例中,Redis的最大内存限制为256MB,当内存使用达到256MB时,将使用LRU算法从所有键中淘汰数据。