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