如何为Redis队列中的每个项目设置过期时间

4

我正在使用jedis,一个redis的java客户端。我有一个字符串项的队列。像往常一样,我正在使用lpush lpop rpush rpop进行必要的操作。但是我想为队列中的每个单独项设置过期时间。这是否可能?


不可以单独过期某个元素,只能在键级别上进行过期。 - Didier Spezia
有什么方法可以解决这个问题吗?使用其他结构可以吗? - twb
1个回答

4

出于保持Redis简单和快速的考虑,这在Redis中是不可能的(设计如此)

您可以将过期值与列表中的字符串一起存储,或者存储一个单独的到期时间列表,让应用程序知道键是否已过期。

这里还有一种备选解决方案(点击此处阅读)。您可以将值存储在分数为到期时间戳的排序集合中,并仅选择那些分数大于某个时间戳的成员。(当然,这取决于您的应用程序来清除集合中已过期的元素)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接