Redis如何淘汰过期的keys
Redis keys过期有两种方式:被动和主动方式。
当一些客户端尝试访问它时,key会被发现并主动的过期。
当然,这样是不够的,因为有些过期的keys,永远不会访问他们。 无论如何,这些keys应该过期,所以定时随机测试设置keys的过期时间。所有这些过期的keys将会从密钥空间删除。
具体就是Redis每秒10次做的事情:
- 测试随机的20个keys进行相关过期检测。
- 删除所有已经过期的keys。
- 如果有多于25%的keys过期,重复步奏1.
这是一个平凡的概率算法,基本上的假设是,我们的样本是这个密钥控件,并且我们不断重复过期检测,直到过期的keys的百分百低于25%,这意味着,在任何给定的时刻,最多会清除1/4的过期keys。
Redis采用被动和主动两种方式淘汰过期Key。当客户端访问时,Key会被主动检查并过期,同时每隔1秒,Redis会随机检测20个Key,删除已过期的,并在超过25%的Keys过期时重复此过程,以保证过期Key的有效管理。该策略基于概率算法,确保在任何时刻过期Keys不超过总Keys的1/4。

596

被折叠的 条评论
为什么被折叠?



