谜团Redis过期后数据留存(redis过期后数据还在)

在哪里

Redis是一个开源的高性能键值对存储系统,它的流行程度和用途越来越广泛,但是对于Redis中的数据过期,它究竟又有什么样的处理机制呢?这也成了一道谜题。

Redis使用带过期时间的键值存储方式。当设置了数据过期时间后,一旦达到指定时间,Redis就会自动将这个值从存储介质中删除掉。

在线上环境下,由于Redis的访问量会变的很大,因此当某个过期的值被从内存中删除时,并不意味着就会从存储介质中马上删除掉。事实上,此时Redis并不会立即将这个值从存储中删除,因为这样做有可能会影响到线上服务的可用性,所以Redis为了保持其稳定性,在数据被从内存中删除后会被缓存,当空间满载级别达到一定程度时才会将这些数据从存储介质中移除。

代码示例:

“`java

//设置一条数据可在半小时后过期

jedis.set(“key”, “value”, “NX”, “EX”, 1800);

//定期清理缓存的数据

while (true) {

jedis.expire(“key”, 0);

//休眠半小时

Thread.sleep(30 * 1000 * 60);

}


总结:Redis在处理数据过期问题时,不会将过期的数据立即从存储介质中删除,而是缓存到服务器端,等到空间满载级别达到一定程度后才会将这些数据从存储介质中移除。

数据运维技术 » 谜团Redis过期后数据留存(redis过期后数据还在)