我有一堆需要存储在 Redis 列表中的 ID。这是直截了当的。ID 只是无符号整数。几个小时后,我需要一个 ID 才能在列表中过期。目前我没有看到这样做的方法,因为您只能在整个键上设置到期时间,而不是列表中的元素。
使用 Redis 有哪些解决方案/解决方法?
我有一堆需要存储在 Redis 列表中的 ID。这是直截了当的。ID 只是无符号整数。几个小时后,我需要一个 ID 才能在列表中过期。目前我没有看到这样做的方法,因为您只能在整个键上设置到期时间,而不是列表中的元素。
使用 Redis 有哪些解决方案/解决方法?
ID 是唯一的吗?如果是这样,那么您可以使用 aSORTED SET
而不是 a LIST
(在这种情况下无论如何都会更好,无论我要描述的黑客如何)。
然后,使用 Unix 时间作为每个项目的分数。这些项目仍然不会自动删除,但是您可以运行一些不时删除旧项目的工作程序(用于ZRANGEBYSCORE
对某些范围进行排序),无论如何,在您的客户端代码中,您可以检查您提取的项目的分数并验证它没有(逻辑上)过期。