PassJava (佳必过) 项目全套学习教程连载中,关注公众号悟空聊架构第一时间获取。

文档在线地址: www.passjava.cn

Redis的淘汰策略有哪几种?

悟空拧螺丝 2021-07-19

Redis的淘汰策略有哪几种?

源码在这里:redis.conf 文件

volatile-ttl 策略,在筛选时,会针对设置了过期时间的键值对,根据过期时间的先后进行删除,越早过期的越先被删除。

volatile-random策略,在设置了过期时间的键值对中,进行随机删除。

volatile-lru 策略,会使用 LRU 算法筛选设置了过期时间的键值对。最近最少使用的会被删掉。

volatile-lfu 会使用 LFU 算法选择设置了过期时间的键值对。首先会筛选并淘汰访问次数少的数据,然后针对访问次数相同的数据,再筛选并淘汰访问时间最久远的数据。

allkeys-random 策略,从所有键值对中随机选择并删除数据。

allkeys-lru 策略,使用 LRU 算法在所有数据中进行筛选。

allkeys-lfu 策略,使用 LFU 算法在所有数据中进行筛选。

默认情况下,Redis 在使用的内存空间超过 maxmemory 值时,并不会淘汰数据,也就是设定的 noeviction 策略。写满后再写会返回错误。

缓存淘汰策略思维导图

作者简介:悟空,8年一线互联网开发和架构经验,用故事讲解分布式、架构设计、Java 核心技术。《JVM性能优化实战》专栏作者,开源了《Spring Cloud 实战 PassJava》项目,公众号:悟空聊架构

悟空的开源项目

https:///Jackson0714/PassJava-Platform