redis过期键值对的实现原理

redis数据结构在这里不讨论,把数据结构再往上提一层,redis就是一些键值对,我们在往redis里写数据的时候,可以设置一个过期时间,那么redis是如何保证让数据的安全性的呢

这里从两个方面给大家阐述一下:

1、当我们给某个键值对设置过期时间的时候,redis会同时生成一个数据字典,key就是你保存数据的key,然后值是一个指向保存数据的键值对,还有一个属性就是过期时间,是一个时间戳,是过期的时刻

2、判断过期策略,redis有以下三种:

A、创建带过期时间的键值对时,会同时创建一个定时任务,也就是说有几个需要设置过期时间的就有几个定时任务

B、开启一个线程,每隔一段时间对过期字典进行轮训,然后找到过期的键

C、客户端每查询出一个键之前,先去判断是否过期,如果过期则返回空

其中redis默认采用BC联合模式,具体原因你懂的,只能说这种比较通用,如果你的程序很特别,也许你的最佳选择是A。

没有公共的最佳选择,只有最适合你程序的选择

    原文作者:plugins
    原文地址: https://www.jianshu.com/p/b9ba311c71fb
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞