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。
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!