Redis的有序集合(Sorted Set)本身不支持直接设置过期时间。有序集合中的每个元素都有一个分数(score),但没有过期时间属性。如果你需要为有序集合中的元素设置过期时间,可以考虑以下两种方法:
方法一:使用单独的键来存储过期时间
HSET
命令将元素和过期时间存储到哈希表中:HSET my_sorted_set element1 <score1> <过期时间1>
HSET my_sorted_set element2 <score2> <过期时间2>
ZRANGEBYSCORE my_sorted_set -inf <当前时间> WITHSCORES
HDEL my_sorted_set <过期元素1>
HDEL my_sorted_set <过期元素2>
方法二:使用Sorted Set的分数作为过期时间的索引
ZSET
命令将元素和过期时间存储到有序集合中:ZADD my_sorted_set_expirations <过期时间1> element1
ZADD my_sorted_set_expirations <过期时间2> element2
ZRANGEBYSCORE my_sorted_set_expirations -inf <当前时间> WITHSCORES
ZREM my_sorted_set_expirations <过期元素1>
ZREM my_sorted_set_expirations <过期元素2>
请注意,这两种方法都需要额外的维护工作,因为它们依赖于外部数据结构(哈希表或有序集合)来存储过期时间。在实际应用中,你需要根据你的需求和场景选择合适的方法。