はじめに
この実験 (lab) では、基本的な Redis Sorted Set の操作について学びます。まず、Redis サーバーに接続し、ZADD コマンドを使用して、関連するスコアを持つ要素を Sorted Set に追加します。これには、新しい要素の追加、既存の要素のスコアの更新、およびコマンドの出力を理解することが含まれます。
次に、ZRANGE コマンドを使用してインデックスで Sorted Set から要素の範囲を取得する方法、ZRANK を使用して要素のランクを取得する方法、ZINCRBY を使用して要素のスコアをインクリメントする方法、最後に ZREM を使用して Sorted Set から要素を削除する方法を学びます。
ZADD を使用してスコア付きの要素を追加する
このステップでは、ZADD コマンドを使用して、Redis Sorted Set にスコア付きの要素を追加する方法を学びます。Sorted Set は、スコアに関連付けられた要素を格納するデータ構造です。要素はスコアによって順序付けられるため、ソートされた方法で要素を取得できます。
まず、Redis サーバーに接続しましょう。LabEx VM でターミナルを開きます。すでに ~/project ディレクトリにいるはずです。次に、redis-cli コマンドを使用して Redis サーバーに接続します。
redis-cli
Redis プロンプト 127.0.0.1:6379> が表示されるはずです。
次に、my_zset という名前の Sorted Set に、スコア付きの要素をいくつか追加してみましょう。ZADD コマンドの構文は次のとおりです。
ZADD key score member [score member ...]
ここで:
keyは Sorted Set の名前です。scoreは要素に関連付けられたスコアです。memberは追加する要素です。
my_zset に 3 つの要素を追加しましょう。"apple" のスコアは 1、"banana" のスコアは 2、"cherry" のスコアは 3 です。
ZADD my_zset 1 apple 2 banana 3 cherry
次の出力が表示されるはずです。
(integer) 3
これは、3 つの要素が Sorted Set に追加されたことを示します。
このステップの後、コマンドが正しくログに記録されるように、Redis CLI を終了することが重要です。終了するには、次のように入力します。
exit
ZADD を使用して要素を追加し、スコアを更新する
このステップでは、my_zset Sorted Set に要素を追加し続け、既存の要素のスコアを更新します。
まず、Redis サーバーに再度接続します。
redis-cli
次に、別の要素 "date" をスコア 2.5 で追加してみましょう。
ZADD my_zset 2.5 date
次の出力が表示されるはずです。
(integer) 1
これは、1 つの要素が Sorted Set に追加されたことを示します。
ZADD を使用して、既存の要素のスコアを更新することもできます。"apple" のスコアを 1.5 に更新してみましょう。
ZADD my_zset 1.5 apple
次の出力が表示されるはずです。
(integer) 0
これは、新しい要素が追加されなかったこと ("apple" がすでに存在するため) を示していますが、"apple" のスコアが更新されました。
Redis CLI を終了することを忘れないでください。
exit
ZRANGE を使用してインデックスで範囲を取得する
my_zset Sorted Set に要素を追加したので、ZRANGE コマンドを使用して、特定の範囲内の要素を取得する方法を学びましょう。
Redis サーバーに接続します。
redis-cli
ZRANGE コマンドは、Sorted Set から指定されたインデックス範囲内の要素を取得します。構文は次のとおりです。
ZRANGE key start stop [WITHSCORES]
ここで:
keyは Sorted Set の名前です。startは開始インデックス (包括的) です。stopは終了インデックス (包括的) です。WITHSCORES(オプション) は、出力に要素のスコアを含めます。
my_zset から最初の 3 つの要素 (インデックス 0 ~ 2) を取得するには、次のコマンドを使用します。
ZRANGE my_zset 0 2
スコアでソートされた要素を表す次の出力が表示されるはずです。
1) "apple"
2) "banana"
3) "date"
要素をスコアとともに取得するには、WITHSCORES オプションを使用します。
ZRANGE my_zset 0 2 WITHSCORES
次の出力が表示されるはずです。
1) "apple"
2) "1.5"
3) "banana"
4) "2"
5) "date"
6) "2.5"
Redis CLI を終了します。
exit
ZRANK を使用して要素のランクを取得する
このステップでは、ZRANK コマンドを使用して、Sorted Set 内の要素のランクを決定する方法を学びます。ランクは、ソートされた順序での要素の位置を表します (最低スコアの場合は 0 から始まります)。
Redis サーバーに接続します。
redis-cli
ZRANK コマンドは、次の構文を取ります。
ZRANK key member
ここで:
keyは Sorted Set の名前です。memberは、ランクを検索する要素です。
my_zset 内の "banana" のランクを検索するには、次のコマンドを使用します。
ZRANK my_zset banana
次の出力が表示されるはずです。
(integer) 1
これは、"banana" が Sorted Set 内のランク 1 にあることを示します。
Redis CLI を終了します。
exit
ZINCRBY でスコアを増やし、ZREM で要素を削除する
この最後のステップでは、ZINCRBY を使用して要素のスコアを増分し、ZREM を使用して要素を削除する方法を学びます。
Redis サーバーに接続します。
redis-cli
ZINCRBY コマンドは、ソートされたセット内のメンバーのスコアを増分します。構文は次のとおりです。
ZINCRBY key increment member
ここで:
keyは Sorted Set の名前です。incrementは、スコアを増分する値です。memberは、スコアを増分する要素です。
"banana" のスコアを 0.5 ずつ増分してみましょう。
ZINCRBY my_zset 0.5 banana
次の出力が表示されるはずです。
"2.5"
これは、"banana" の新しいスコアが 2.5 であることを示しています。
ZREM コマンドは、ソートされたセットからメンバーを削除します。構文は次のとおりです。
ZREM key member [member ...]
ここで:
keyは Sorted Set の名前です。memberは、削除する要素です。
my_zset から "banana" を削除してみましょう。
ZREM my_zset banana
次の出力が表示されるはずです。
(integer) 1
これは、1 つの要素が削除されたことを示しています。
Redis CLI を終了します。
exit
まとめ
この実験 (lab) では、基本的な Redis Sorted Set 操作の使用方法を学びました。ZADD を使用してスコア付きの要素を追加し、ZRANGE を使用して要素の範囲を取得し、ZRANK を使用して要素のランクを取得し、ZINCRBY を使用してスコアを増分し、ZREM を使用して要素を削除しました。これで、Redis でソートされたセットを効果的に管理するための確固たる基盤ができました。


