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>
請注意,這兩種方法都需要額外的維護工作,因為它們依賴于外部數據結構(哈希表或有序集合)來存儲過期時間。在實際應用中,你需要根據你的需求和場景選擇合適的方法。