redis
並べ替えられたセット
サーチ…
前書き
RedisのSorted Setデータ型は、Setデータ型の順序付きバージョンです。 Redisソートセットは、ユニークなメンバーのコレクションで構成されています。ソートされたセットの各メンバーは、メンバーとスコアからなるペアと考えることができます。スコアは、セット内のメンバーを昇順で並べ替えるために使用されます。
構文
- ZADDキー[NX | XX] [CH] [INCR]スコアメンバー[スコアメンバー...]
- ZCARDキー
- ZCOUNTキーの最小値
- ZLEXCOUNTキーの最小値
備考
Sorted Setsの公式文書は、 Redis.ioサイトにあります。
ソートされたセットは、時々zsetsと呼ばれます。ソートされたセット・キーでTYPEコマンドを使用すると、値zsetが戻されます。
ソートセットへのアイテムの追加
Redisは、並べ替えられたセットに項目を追加するZADDコマンドを提供します。 ZADDコマンドの基本的な形式は、セット、追加するアイテム、およびスコアを指定することです。例えば、私が好きな食べ物の注文セットを(最小から最大まで)作りたいと思ったら、私は次のいずれかを使うことができます:
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
あるいは、
zadd favs 1 apple 2 pizza 3 chocolate 4 beer
ZADD関数は、ソートされていない集合関数SADDと非常によく似ています。 ZADDコマンドの結果は、追加された項目の数です。上記のように私のセットを作成した後、再びZADDビールにしようとすると:
ZADD favs 4 beer
私は0の結果を得るだろう、私はビールよりもチョコレートが好きだと決めたら、私は実行することができます:
ZADD favs 3 beer 4 chocolate
私の好みを更新するが、ビールとチョコレートの両方が既にセットに入っているので、私はまだ0の返品結果を得るだろう。
ソートされたセット内のアイテムの数をカウントする
Redisは、ソートされたセット内のアイテムをカウントする3つのコマンドZCARD、ZCOUNT、ZLEXCOUNTを提供します。
ZCARDコマンドは、セットの基数の基本テストです。 (セットのSCARDコマンドに似ています)。 ZCARDは、セットのメンバーの数を返します。セットに項目を追加するには、次のコードを実行します。
zadd favs 1 apple
zadd favs 2 pizza
zadd favs 3 chocolate
zadd favs 4 beer
ZCardを実行中:
zcard favs
値4を返します。
ZCOUNTおよびZLEXCOUNTコマンドを使用すると、一連の値に基づいてソートされたセット内の項目のサブセットをカウントできます。 ZCOUNTでは、特定のスコア範囲内のアイテムをカウントできます。また、ZLEXCOUNTでは、特定のレオグラフィック範囲内のアイテム数をカウントできます。
上記のセットを使用して:
zcount favs 2 5
スコアが2〜5の3つのアイテム(ピザ、チョコレート、ビール)があるため、3を返します。
ZLEXCOUNTは、すべてのアイテムが同じスコアを持ち、elemement名を強制して順序付けるセットで動作するように設計されています。次のようなセットを作成した場合:
zadd favs 1 apple
zadd favs 1 pizza
zadd favs 1 chocolate
zadd favs 1 beer
ZLEXCOUNTを使用して、特定のレオノグラフィック範囲の要素の数を取得できます(これはmemcpy関数を使用したバイト単位の比較によって行われます)。
zlexcount favs [apple (chocolate
2つの要素(リンゴ、ビール)がリンゴ(包括的)とチョコレート(排他的)の範囲に入るため、2を返します。代わりに、両端を含むこともできます。
zlexcount favs [apple [chocolate
結果を得る3。