Redis过期自动清理功能(redis过期会自动删除)
Redis是一个开源的高性能的内存数据库,通常被用来存储纪录和数据缓存。为了保证Redis的正常工作,Redis引入了过期自动清理功能,可以自动清理在设定的时间内没有被使用的空间。
Redis的过期自动清理功能检测到内存中的空间和对象上的生存周期过期,然后用来清理内存中的对象,减少无效的内存。在内存数据没有被修改或查询后一定时间会过期,Redis就会自动从内存中清除这些过期的东西,腾出空间,以便重新分配给其他纪录和数据缓存使用。
过期自动清理的工作流程如下:Redis在进行纪录和数据缓存时,会设置一个过期时间,当这个对象被查询或者修改,过期时间就会被重新计算;同时Redis会创建新的指数级定期清理任务,清理那些过期的空间,释放出内存空间;Redis会用它分配好回收回来的内存空间,以便于存储新的数据和纪录。
使用Redis的过期自动清理功能不仅能提升多线程写入的性能,同时还能有效减少存储的空间,保证Redis的正常运行,更好的使用内存空间。
以下是一组演示代码,可以帮助大家了解如何使用Redis的过期自动清理功能:
//设置对象的生存周期
jedis.expire(KEY, EXPIRE_TIME);
//定期清理任务
protected void deleteExpiredKeys() {
//查找出失效的key
Set expiredKeySet = jedis.keys(“*”);
//遍历失效的key,进行删除
expiredKeySet.forEach(expiredKey -> jedis.del(expiredKey));
}