缓存的容量终究是有限的,需要按一定规则淘汰出去,为新来的数据腾出空间,提高缓存命中率,提升应用的访问性能。缓存容量的规划通常是需要结合应用数据实际访问特征和成本开销来综合考虑的,建议把缓存容量设置为总数据量的 15% 到 30%,兼顾访问性能和内存空间开销。设置容量命令(如4gb):CONFIG SET maxmemory 4gb

8种淘汰策略:noeviction、volatile-random、volatile-ttl、volatile-lru、volatile-lfu、allkeys-lru、allkeys-random、allkeys-lfu
大体分为两类,noeviction(不淘汰数据),缓存被写满了,再有写请求时 Redis 不再提供服务,直接返回错误。另外7种是一类,按照一定范围对缓存数据进行淘汰,对设置过期时间的数据进行淘汰,和对所有数据进行淘汰。分类如图:




具体策略如下:


(1)volatile-ttl: 根据过期时间的先后进行删除,越早过期的越先被删除。


(2)volatile-rando: 在设置了过期时间的键值对中,进行随机删除。


(3)volatile-lru: 使用 LRU 算法筛选设置了过期时间的键值对。


(4)volatile-lfu: 使用 LFU 算法选择设置了过期时间的键值对。


(5)allkeys-random: 从所有键值对中随机选择并删除数据。


(6)allkeys-lru: 使用 LRU 算法在所有数据中进行筛选。


(7)allkeys-lfu: 使用 LFU 算法在所有数据中进行筛选。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。