Redis过期了,它又在哪里(redis 过期了还在吗)
Redis(Remote Dictionary Server)是一个开源、高效、实时、可扩展的分布式内存数据库,已经成为流行的高性能缓存数据库,在各种大型应用系统中都有广泛的应用。
Redis的一大优势就是支持数据的过期处理,从而节省内存的使用空间。当Redis值的过期时间到了,那么在Redis中这个值已经不存在了。
Redis主要把过期数据存储到一个“已过期”集合里。如果一个Redis key过期,那么Redis会自动地将其添加到“已过期”集合中。在(以10为例)每10秒,Redis就会到这个已过期集合中查找哪个Key需要删除,比如,示例代码如下:
// 设置 key 的过期时间
// time 是秒单位
// expire(“key”,time);
“`
RedisScript redisScript=new RedisScript();
Jedis jedis=new Jedis(“localhost”);
String script=”if redis.call(‘exists’, KEYS[1]) == 1 then return redis.call(‘expire’, KEYS[1], ARGV[1]) else return 0 end”;
Object result=redisScript.eval(jedis,script, keys,time);
“`
然后,Redis在删除这个key之前会对对应的过期集合中的key进行删除行为,比如del key。在Redis中,过期数据已经不存在了。
Redis支持数据过期,当Redis检测到一个值的过期时间到了,它会把这个值从内存中删除,并将其加入到已过期集合中。当过期的key被被del的时候,Redis中的数据就不存在了。