是否有办法在Redis中有可靠的密钥过期通知。据我从Redis文档中了解,密钥过期通知是Redis是不可靠的。
根据文档,由于Redis Pub/Sub是火的,并且忘记了当前没有办法使用此功能,如果应用程序需要可靠的事件通知,也就是说,如果您的Pub/Sub客户端断开连接,并且稍后重新连接,则在客户端断开连接期间传递的所有事件都将丢失。
是否有人建议通过Redis获得可靠的密钥过期通知,或者请建议Java中的其他数据库或机制具有数据过期及其通知,以便在到期时对数据执行额外的操作。
发布于 2019-12-30 21:29:16
通过让多个客户端订阅密钥空间过期通知,可以提高通知的可靠性。
您可以将过期通知与过期密钥的实际处理分离开来,这样您就可以处理它们一次,还可以通过让密钥空间过期通知客户端执行简单的排队任务来提高可靠性。为此,您可以使用来自Redis的其他数据结构,如集合或排序集(唯一值),甚至可以在使用者组中使用红溪。
另一个选项是将另一个密钥过期,而不是实际密钥。见事件上的密钥过期问题。如果需要过期密钥的值,这也很有帮助。
假设您即将过期的密钥名为“foo”,当您创建它时,不要将其过期,而是创建另一个名为“foo: expire”的键,并在其上设置TTL。 ..。获得过期事件后,启动逻辑以存储和删除“旧”数据('foo')。
在这种方法中,您可以包含从遗漏的通知中恢复的逻辑。
https://stackoverflow.com/questions/59536385
复制相似问题