Redis的有序集合(Sorted Set)本身不支持直接設(shè)置過期時(shí)間。有序集合中的每個(gè)元素都有一個(gè)分?jǐn)?shù)(score),但沒有過期時(shí)間屬性。如果你需要為有序集合中的元素設(shè)置過期時(shí)間,可以考慮以下兩種方法:
方法一:使用單獨(dú)的鍵來存儲(chǔ)過期時(shí)間
HSET
命令將元素和過期時(shí)間存儲(chǔ)到哈希表中:HSET my_sorted_set element1 <score1> <過期時(shí)間1>
HSET my_sorted_set element2 <score2> <過期時(shí)間2>
ZRANGEBYSCORE my_sorted_set -inf <當(dāng)前時(shí)間> WITHSCORES
HDEL my_sorted_set <過期元素1>
HDEL my_sorted_set <過期元素2>
方法二:使用Sorted Set的分?jǐn)?shù)作為過期時(shí)間的索引
ZSET
命令將元素和過期時(shí)間存儲(chǔ)到有序集合中:ZADD my_sorted_set_expirations <過期時(shí)間1> element1
ZADD my_sorted_set_expirations <過期時(shí)間2> element2
ZRANGEBYSCORE my_sorted_set_expirations -inf <當(dāng)前時(shí)間> WITHSCORES
ZREM my_sorted_set_expirations <過期元素1>
ZREM my_sorted_set_expirations <過期元素2>
請(qǐng)注意,這兩種方法都需要額外的維護(hù)工作,因?yàn)樗鼈円蕾囉谕獠繑?shù)據(jù)結(jié)構(gòu)(哈希表或有序集合)來存儲(chǔ)過期時(shí)間。在實(shí)際應(yīng)用中,你需要根據(jù)你的需求和場(chǎng)景選擇合適的方法。