Redis之key的过期策略

本文共 518 字,预计阅读时间 2 分钟

 


1.前言

redis作为一种非关系性数据库,常用来做缓存,不妨来了解下其key的过期策略。

过期字典:reids将所有过期的键值都放在一个字典中,而这个字典就叫做过期字典。

键空间:服务器中的每个数据库都由一个redis.h/redisDb结构表示,其中redisDb结构的dict字典保存了数据库中的所有键值对,将这个字典称为键空间。

2.过期策略

策略 概述
定期删除

每隔一段时间就对一些key进行检查,然后删除这些过期的key。其有两种模式:

slow模式:定时执任务,默认执行频率10hz(10次/s),每次不超过25ms

fast模式:执行频率不固定,但两次间隔的时间不低于2ms,每次耗时不超过1ms

惰性删除 服务端不主动删除,当客户端在获取某个 key时,redis 会检查一下这个key是否过期?如果过期就会删除并返回null

当然,默认采用的是 定期删除+惰性删除。即使如此,还是会出现一种情况,若定期删除漏掉了很多过期key,而客户端又没有去获取这些key,那么这些大量的过期key就会造成内存耗尽,岂不是凉凉?

不怕,此时reids会走内存淘汰机制。目前最常用的是allkeys-lru,当内存不足以容纳新写入数据时,从键空间中移除最近最少使用的 key。

posted @   钟小嘿  阅读(471)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示