目次
ZADD キー スコア 1 メンバー 1 [スコア 2 メンバー 2]
ZRANGE キー スタート ストップ [WITHSCORES]
基本的な紹介
Redis の順序付きコレクションzset は、繰り返しの要素を含まない文字列のコレクションである通常のコレクション セットと非常によく似ています。違いは、順序付きセットの各メンバーがスコア (スコア) に関連付けられていることです。スコアは、セットのメンバーを最低スコアから最高スコアまで並べ替えるのに使用されます。セットのメンバーは一意ですが、スコアは重複する可能性があります
順序付きセットのメンバーは一意ですが、スコア (スコア) は繰り返すことができます。
コレクションはハッシュ テーブルを通じて実装されるため、追加、削除、検索の複雑さは O(1) です。コレクション内のメンバーの最大数は 232 - 1 (4294967295、各コレクションには 40 億を超えるメンバーを保存できます) です。
共通コマンド
Redis ソートコレクションの基本コマンド:
シリアルナンバー | コマンドと説明 |
---|---|
1 | ZADD キー スコア 1 メンバー 1 [スコア 2 メンバー 2] ソートされたセットに 1 つ以上のメンバーを追加するか、既存のメンバーのスコアを更新します |
2 | 順序付きセットのメンバーの数を取得するためのZCARD キー |
3 | ZCOUNT key min max は、 ソートされたセット内の指定された間隔部分のメンバーの数をカウントします。 |
4 | ZINCRBY キー増分メンバー 順序付きセット内の指定されたメンバーのスコアに増分増分を加えたもの |
5 | ZINTERSTORE destination numkeys key [key ...] 指定された 1 つ以上のソート セットの共通部分を計算し、結果セットを新しいソート セット キーに格納します。 |
6 | ZLEXCOUNT key min max は、 順序付きセット内の指定された辞書間隔内のメンバーの数を計算します。 |
7 | ZRANGE キー start stop [WITHSCORES] インデックス間隔を通じて順序付きセットを返し、指定された間隔でメンバーを形成します |
8 | ZRANGEBYLEX キー min max [LIMIT offset count] は、 辞書範囲を通じて順序付きセットのメンバーを返します。 |
9 | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] スコアによって順序付けられたセットの指定された間隔内のメンバーを返します |
10 | ZRANK キー メンバーは、 ソートされたセット内の指定されたメンバーのインデックスを返します。 |
11 | ZREM キー メンバー [メンバー ...] は、 ソートされたセットから 1 つ以上のメンバーを削除します |
12 | ZREMRANGEBYLEX key min max は、 ソートされたセット内の指定されたディクショナリ間隔のすべてのメンバーを削除します |
13 | ZREMRANGEBYRANK キー start stop ソート されたセット内の指定されたランク範囲のすべてのメンバーを削除します |
14 | ZREMRANGEBYSCORE key min max は、 ソートされたセット内の指定されたスコア間隔のすべてのメンバーを削除します |
15 | ZREVRANGE キー start stop [WITHSCORES] インデックスを介して、スコアが高いものから低いものまで、順序付きセット内の指定された間隔内のメンバーを返します。 |
16 | ZREVRANGEBYSCORE key max min [WITHSCORES] は、 ソートされたセット内の指定されたスコア範囲内のメンバーを返し、スコアは高から低の順にソートされます。 |
17 | ZREVRANK キー メンバー 順序付きセット内の指定されたメンバーのランクを返します。順序付きセットのメンバーは、スコア値の降順 (大きいものから小さいものへ) で並べ替えられます。 |
18 | ZSCORE キー メンバーは、 順序付きセット内のメンバーのスコア値を返します。 |
19 | ZUNIONSTORE destination numkeys key [key ...] 1 つ以上の指定されたソート セットの和集合を計算し、それらを新しいキーに格納します |
20 | ZSCAN キー カーソル [MATCH パターン] [COUNT 回数] 順序付きセット内の要素 (要素メンバーと要素スコアを含む) を反復します。 |
ZADD キー スコア 1 メンバー 1 [スコア 2 メンバー 2]
Redis Zadd コマンドは、1 つ以上のメンバー要素とそのスコア値を順序付きセットに追加するために使用されます。メンバーがすでに順序付きセットのメンバーである場合は、メンバーのスコア値を更新し、メンバー要素を再挿入してメンバーが正しい位置にあることを確認します。小数値は整数値または倍精度浮動小数点数にすることができます。ソートセットキーが存在しない場合は、空のソートセットを作成し、ZADD 操作を実行します。キーは存在するがソートセット型ではない場合、エラーを返します。
redis 127.0.0.1:6379> ZADD myset 1 "hello"
(integer) 1
redis 127.0.0.1:6379> ZADD myset 1 "foo"
(integer) 1
redis 127.0.0.1:6379> ZADD myset 2 "world" 3 "bar"
(integer) 2
redis 127.0.0.1:6379> ZRANGE myzset 0 -1 WITHSCORES
1) "hello"
2) "1"
3) "foo"
4) "1"
5) "world"
6) "2"
7) "bar"
8) "3"
戻り値: 更新された既存のメンバーを除く、正常に追加された新しいメンバーの数。
ZRANGE キー スタート ストップ [WITHSCORES]
WITHSCORESを使用すると、スコアと値をまとめて結果セットに返すことができます
Redis Zrange は、ソートされたセット内の指定された範囲内のメンバーを返します。メンバーの順位はスコア値の昇順(小さい順)に並び替えられます。同じスコア値を持つメンバーは辞書順に並べられます。添字パラメーターの start と stop は 0 に基づいています。つまり、0 は順序付きセットの最初のメンバーを表し、1 は順序付きセットの 2 番目のメンバーを表します。最後のメンバーには -1、最後から 2 番目のメンバーには -2 など、負の添え字を使用することもできます。
redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES # 显示整个有序集成员
1) "jack"
2) "3500"
3) "tom"
4) "5000"
5) "boss"
6) "10086"
redis 127.0.0.1:6379> ZRANGE salary 1 2 WITHSCORES # 显示有序集下标区间 1 至 2 的成员
1) "tom"
2) "5000"
3) "boss"
4) "10086"
redis 127.0.0.1:6379> ZRANGE salary 0 200000 WITHSCORES # 测试 end 下标超出最大下标时的情况
1) "jack"
2) "3500"
3) "tom"
4) "5000"
5) "boss"
6) "10086"
redis > ZRANGE salary 200000 3000000 WITHSCORES # 测试当给定区间不存在于有序集时的情况
(empty list or set)
戻り値: 指定された範囲内の小数値 (オプション) を持つ順序付きセット メンバーのリスト。
Zカードキー
Redis Zcard コマンドは、コレクション内の要素の数を数えるために使用されます。
redis 127.0.0.1:6379> ZADD myset 1 "hello"
(integer) 1
redis 127.0.0.1:6379> ZADD myset 1 "foo"
(integer) 1
redis 127.0.0.1:6379> ZADD myset 2 "world" 3 "bar"
(integer) 2
redis 127.0.0.1:6379> ZCARD myzset
(integer) 4
戻り値: キーが存在し、順序付きセット型の場合、順序付きセットのカーディナリティを返します。キーが存在しない場合は0を返します。
ZCOUNT キー最小最大
Redis Zcount コマンドは、順序付きセット内の指定されたスコア間隔内のメンバーの数をカウントするために使用されます。
redis 127.0.0.1:6379> ZADD myzset 1 "hello"
(integer) 1
redis 127.0.0.1:6379> ZADD myzset 1 "foo"
(integer) 1
redis 127.0.0.1:6379> ZADD myzset 2 "world" 3 "bar"
(integer) 2
redis 127.0.0.1:6379> ZCOUNT myzset 1 3
(integer) 4
戻り値: スコア値が最小と最大の間のメンバーの数。
ZREM主要メンバー [メンバー ...]
Redis Zrem コマンドは、ソートされたセットから 1 つ以上のメンバーを削除するために使用されます。存在しないメンバーは無視されます。キーは存在するがソートセット型ではない場合、エラーを返します。
# 测试数据
redis 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
5) "google.com"
6) "10"
# 移除单个元素
redis 127.0.0.1:6379> ZREM page_rank google.com
(integer) 1
redis 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES
1) "bing.com"
2) "8"
3) "baidu.com"
4) "9"
# 移除多个元素
redis 127.0.0.1:6379> ZREM page_rank baidu.com bing.com
(integer) 2
redis 127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES
(empty list or set)
# 移除不存在元素
redis 127.0.0.1:6379> ZREM page_rank non-exists-element
(integer) 0
戻り値: 無視されたメンバーを除く、正常に削除されたメンバーの数。
ZSCORE 主要メンバー
Redis Zscore コマンドは、ソートされたセット内のメンバーのスコア値を返します。メンバー要素がソートされたセットのキーのメンバーではない場合、またはキーが存在しない場合は、nil を返します。
redis 127.0.0.1:6379> ZRANGE salary 0 -1 WITHSCORES # 测试数据
1) "tom"
2) "2000"
3) "peter"
4) "3500"
5) "jack"
6) "5000"
redis 127.0.0.1:6379> ZSCORE salary peter # 注意返回值是字符串
"3500"
戻り値: 文字列として表されるメンバーのスコア値。