在分布式系统中, TTL 的处理不能依赖系统时钟, 而应该依赖逻辑时钟. 否则, 多个节点的数据会不一致.
当一个 key 过期时, 无论是系统内部发现, 或是系统外部发现, 都需要系统的所有节点先达到时间共识, 然后再删除. 通过外部工具显式地发送一个删除请求(需要 CAS), 也算是逻辑时钟的一种.
而且, 删除操作必须是一个原子操作.
在分布式系统中, TTL 的处理不能依赖系统时钟, 而应该依赖逻辑时钟. 否则, 多个节点的数据会不一致.
当一个 key 过期时, 无论是系统内部发现, 或是系统外部发现, 都需要系统的所有节点先达到时间共识, 然后再删除. 通过外部工具显式地发送一个删除请求(需要 CAS), 也算是逻辑时钟的一种.
而且, 删除操作必须是一个原子操作.