两种方式
- 被动:惰性删除
- 主动:随机删除
当客户端请求一个key时,redis发现该key已过期,则会触发删除操作(惰性删除)。
仅仅通过这种被动的方式处理是不够的,毕竟也可能存在大量过期的key永远不会被客户端访问,所以Redis会定期的测试一些随机的存在过期的key,如果过期则会删除(随机删除)。
- 随机测试20个存在过期时间的key
- 删除所有已过期的key
- 如果超过25%的key过期了,则从步骤1开始再来一遍
关于数据一致性,当一个key过期了,DEL操作会合到AOF文件中,并获得所有连接的从节点。这种方式使过期操作集中到主节点,避免数据一致性的错误。
从节点不会独立的进行删除过期key的操作,只能等待主节点的删除操作。
本文探讨了Redis处理过期键的两种策略:惰性删除和主动随机删除。当客户端请求过期键时,Redis将执行惰性删除;此外,为确保数据一致性,Redis会定期检查并删除过期键,如果超过25%的键过期,过程将重新开始。主节点负责执行删除操作,并将DEL命令同步到AOF文件及从节点。
556

被折叠的 条评论
为什么被折叠?



