redis数据结构在这里不讨论,把数据结构再往上提一层,redis就是一些键值对,我们在往redis里写数据的时候,可以设置一个过期时间,那么redis是如何保证让数据的安全性的呢
这里从两个方面给大家阐述一下:
1、当我们给某个键值对设置过期时间的时候,redis会同时生成一个数据字典,key就是你保存数据的key,然后值是一个指向保存数据的键值对,还有一个属性就是过期时间,是一个时间戳,是过期的时刻
2、判断过期策略,redis有以下三种:
A、创建带过期时间的键值对时,会同时创建一个定时任务,也就是说有几个需要设置过期时间的就有几个定时任务
B、开启一个线程,每隔一段时间对过期字典进行轮训,然后找到过期的键
C、客户端每查询出一个键之前,先去判断是否过期,如果过期则返回空
其中redis默认采用BC联合模式,具体原因你懂的,只能说这种比较通用,如果你的程序很特别,也许你的最佳选择是A。
没有公共的最佳选择,只有最适合你程序的选择