Redis可以给一个key设置过期时间,当key过期以后,并不会马上自动释放。
Redis对于过期键的处理,分为被动删除和主动删除两种方式。
1.被动删除
当客户端访问到一个已经过期的键但尚未删除,Redis就会主动把它删除。
2.主动删除
Redis每秒会循环10次以下操作:
随机抽取20个具有过期时间的键;
删除其中已经过期的键;
如果这次操作删除了超过5个过期键,则马上再做一次循环。
Redis在主从复制中如何处理过期键
主库在删除过期键时,会在AOF文件中写入一个DEL操作,以至从库可以同样删除过期键。
从库不会主动去处理过期键,只会复制主库传输过来的删除操作。
但从库变为主库之后,会作为主库正常处理过期键。
键过期太多导致内存达到maxmemory怎么办?Redis会根据内存回收策略来回收内存空间。