Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > Redis过期策略以及内存淘汰机制

Redis的过期策略以及内存淘汰机制详解

作者:小志的博客

文章详解Redis的过期策略(定时删除、惰性删除、定时扫描)和缓存淘汰算法(如LFU、LRU等),强调定时扫描通过随机抽样处理过期键,惰性删除在访问时清除过期键,同时指出需避免大量键同时过期,且主从同步延迟可能导致数据不一致,建议业务中合理设置过期时间与淘汰策略

一、过期策略

1.1、定时删除

1.1.1、过期

1.1.2、过期的 key 集合

1.1.3、定时扫描策略

Redis 默认会每秒进行十次过期扫描,过期扫描不会遍历过期字典中所有的 key,而是采用了一种简单的贪心策略。

(1)、从过期字典中随机 20 个 key;

(2)、删除这 20 个 key 中已经过期的 key;

(3)、 如果过期的 key 比率超过 1/4,那就重复步骤(1);

1.1.4、 Redis 中所有的 key 在同一时间过期了,会出现怎样的结果

1.1.5、从库的过期策略

1.2、惰性删除

1.3、定时删除和惰性删除的总结

二、缓存淘汰算法

2.1、缓存淘汰算法概述

2.1.1、概述

2.1.2、maxmemory

2.2、缓存淘汰算法机制

2.2.1、Noeviction

2.2.2、volatile-Iru

2.2.3、volatile-ttl

2.2.4、volatile-random

2.2.5、allkeys-lru

2.2.6、allkeys-random

2.3、缓存淘汰算法总结

2.4、LRU 算法概述

2.5、近似 LRU 算法概述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文