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