redis の順位リストの時間をどう設定するか
Redisのソートされた集合(Sorted Set)は、スコアが付いた順序付けされた文字列の集合であり、順序付けされたキューを実現するために使用できます。追加するさまざまなスコアを設定することで、時間に沿って並べられた順序付けされたキューを実現できます。ZADDコマンドを使用して、要素を順序付けされた集合に追加し、要素のスコアを指定できます。スコアはタイムスタンプであり、UNIXタイムスタンプを使用して要素の時間を表すことができます。以下は、順序付けされた集合に要素を追加するコマンドの例です。
ZADD myqueue 1609459200 "item1" # 将元素"item1"的分数设置为2021年1月1日的时间戳 ZADD myqueue 1609545600 "item2" # 将元素"item2"的分数设置为2021年1月2日的时间戳
ZRANGEコマンドを使うと、スコア範囲でソートされた集合から要素を取得でき、これにより、時系列でソートされた順序付きキューを実現できます。次に、順序付き集合から要素を取得するためのコマンド例を示します。
ZRANGE myqueue 0 -1 # 获取有序集合中所有元素 ZRANGE myqueue 0 1 # 获取有序集合中前两个元素
なお、スコアの低い要素ほど前に配置されます。つまり、タイムスタンプをスコアに設定することで、要素を時間の昇順に取得できます。また、ZREM コマンドを使用して要素を注文付きセットから削除したり、ZCARD コマンドを使用して注文付きセットの要素数を取得したりできます。同様に、ZSCORE コマンドを使用して要素のスコアを取得することもできます。