Redis key过期但内存没有释放

1、过期时间被擦除导致key过期未释放内存

首先设置一个key的过期时间:set keya valuea EX 60

然后查看key的剩余时间:TTL keya

此时我们使用set重新设置key的值则会导致过期时间失效,所以在重新set时也需要设置过期时间

 2、key的过期删除策略导致不同情况下的内存未释放

一、惰性删除:在读/写操作key时,判断key是否过期,若key过期则删除该key。

二、定时删除:经过固定时长(存在默认值),Redis会定时删除部分过期的key。

当采用惰性删除策略时,若未主动读写过期的key,则key依然留存在内存中,导致内存的未释放。

当采用定时删除时,Redis只是淘汰了部分的过期key,可能会存在部分过期key未被删除的情况从而导致内存的占用。

引申没有设置过期时间的key,Redis是如何清理的:http://t.csdn.cn/RWPqH

猜你喜欢

转载自blog.csdn.net/qq_57226198/article/details/127713594
今日推荐