前言
最近又开始看书了,之前就提到了看书不梳理基本上看完之后只是开了个眼界,书中的知识留在脑海里的基本没有,所以后来再看书我就会梳理成文章记录下来,一方面可以分享出去,一方面可以作为自己的笔记。最近在看关于redis的书,目前进度30%,后续会不断分享redis相关的内容,希望大家能够相互学习和监督。
redis过期时间的实现
用过redis的人都知道redis有key过期的功能,这个功能也是深受很多开发人员的青睐。那么你知道redis是如何实现这一功能的吗?其实redis为了实现这一功能使用了一个字典结构来存储关于过期时间的相关的信息,字典结构也是key-value的形式。
过期时间的字典数据结构:
- 过期时间字典的key存放的是redis数据库中存放数据的key的指针,这个指针可以关联到redis中存放的数据
- 过期时间字典的value存放的是该key在redis数据库中的过期时间,该时间是一个毫秒精度的UNIX的时间戳。
如上图所示,每一个设置了过期时间的key将会被一个过期key关联上过期时间,redis就是根据过期key以及过期时间去处理设置了过期时间的key,那么问题来了,redis是什么时间去做这件事情的呢?或者说redis是以什么策略来删除过期的key的?下面的内容将是我们今天重点探讨的。
redis过期键删除策略
redis过期键的删除策