redisにおけるSet集合SortSet秩序化集合の複製
12776 ワード
redisにおけるSet集合SortSet秩序化集合の複製
redisコレクションタイプにはレプリケーションコマンドはありません.私が言ったレプリケーションは、redisの他のコマンドによって実現されます.
需要:key 1の内容をすべてkey 2にコピーします.次に、redisでどのように処理するかを見てみましょう.
セットのコピー
まず、key 1のセットを作成します.key 2はまだ作成されていません.
キー1をキー2にコピーします上の例のtempは存在しないkey である.
key 2が既に存在するkeyであればコピーも可能であるが,この場合,key 1のすべてのコンテンツをkey 2に移動する.
SUIONSTOREコマンドを使用すると、Setのレプリケーションが容易に実現できます.次に、SUIONSTOREコマンドの使用方法を見てみましょう.構文: destination:マージ結果セットのkeyを格納します. key[key...]:1つまたは複数のセット 注:既に存在するコレクションの場合、元のデータは削除され、マージ結果のみが保持されます.次に、key 3のメンバー「g」を作成しますが、key 1とkey 2をSUMINSTOREコマンドでマージすると、結果に「g」はありません.
SortSet秩序化集合のレプリケーション
まず、zset 2というkeyがない場合に秩序化された集合zset 1を作成します.
そしてzset 1をzset 2にコピー
ヒントは5つの内容が処理され、zset 2の現在の内容を見てみましょう.
かっこいい!zset 1の内容とそっくりです.これはすべてZUNIONTOREというコマンドのおかげです.次に、このZUNIONTOREコマンドの使い方を説明しましょう.
ZUNIOnstorEコマンドは、実はパラレルセットを求めるコマンドで、彼のパラメータは以下のように説明されています. destination:マージ結果セットのkeyを格納します.既に存在するコレクションの場合、元のデータは削除され、マージ結果のみが保持されます. numkeys:いくつかのセットの内容を統合する必要があります key[key...]:1つまたは複数のセット [WEIGHTS weight]:スコア積係数、デフォルトは1.設定後、集計時に集計対象のセットのスコアに積係数を乗算し、結果を集計結果セットに保存します. [SUM|MIN|MAX]:結果セットの集約方式.デフォルトはSUMです.マージするコレクションに同じ名前の要素がある場合、そのスコアが新しい結果セットにどのように格納されますか.SUM:加算;MIN:最小値を取る;MAX:最大値をとります.
redisコレクションタイプにはレプリケーションコマンドはありません.私が言ったレプリケーションは、redisの他のコマンドによって実現されます.
需要:key 1の内容をすべてkey 2にコピーします.次に、redisでどのように処理するかを見てみましょう.
セットのコピー
まず、key 1のセットを作成します.key 2はまだ作成されていません.
127.0.0.1:6380[1]> SADD key1 "a"
(integer) 1
127.0.0.1:6380[1]> SADD key1 "b"
(integer) 1
127.0.0.1:6380[1]> SADD key1 "c"
(integer) 1
127.0.0.1:6380[1]> smembers key1
1) "b"
2) "a"
3) "c"
キー1をキー2にコピーします
127.0.0.1:6380[1]> SUNIONSTORE key2 key1 temp
(integer) 3
127.0.0.1:6380[1]> smembers key1
1) "b"
2) "a"
3) "c"
127.0.0.1:6380[1]> smembers key2
1) "a"
2) "b"
3) "c"
127.0.0.1:6380[1]> smembers temp
(empty list or set)
key 2が既に存在するkeyであればコピーも可能であるが,この場合,key 1のすべてのコンテンツをkey 2に移動する.
127.0.0.1:6380[1]> SADD key1 "d"
(integer) 1
127.0.0.1:6380[1]> SADD key1 "e"
(integer) 1
127.0.0.1:6380[1]> smembers key1
1) "d"
2) "b"
3) "a"
4) "c"
5) "e"
127.0.0.1:6380[1]> SUNIONSTORE key2 key1 temp
(integer) 5
127.0.0.1:6380[1]> smembers key2
1) "a"
2) "b"
3) "d"
4) "c"
5) "e"
127.0.0.1:6380[1]> smembers temp
(empty list or set)
SUIONSTOREコマンドを使用すると、Setのレプリケーションが容易に実現できます.次に、SUIONSTOREコマンドの使用方法を見てみましょう.構文:
SUNIONSTORE destination key [key ...]
127.0.0.1:6380[1]> sunionstore key3 key1 key2
(integer) 5
127.0.0.1:6380[1]> sadd key1 f h i
(integer) 3
127.0.0.1:6380[1]> sadd key3 g
(integer) 1
127.0.0.1:6380[1]> smembers key3
1) "b"
2) "a"
3) "e"
4) "d"
5) "c"
6) "g"
127.0.0.1:6380[1]> smembers key1
1) "a"
2) "b"
3) "e"
4) "d"
5) "i"
6) "h"
7) "c"
8) "f"
127.0.0.1:6380[1]> sunionstore key3 key1 key2
(integer) 8
127.0.0.1:6380[1]> smembers key3
1) "b"
2) "a"
3) "i"
4) "h"
5) "e"
6) "d"
7) "c"
8) "f"
SortSet秩序化集合のレプリケーション
まず、zset 2というkeyがない場合に秩序化された集合zset 1を作成します.
127.0.0.1:6380[1]> zadd zset1 1 a 2 b 3 c 4 d 5 e
(integer) 5
127.0.0.1:6380[1]> zrange zset1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
そしてzset 1をzset 2にコピー
127.0.0.1:6380[1]> ZUNIONSTORE zset2 1 zset1
(integer) 5
ヒントは5つの内容が処理され、zset 2の現在の内容を見てみましょう.
127.0.0.1:6380[1]> zrange zset2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
かっこいい!zset 1の内容とそっくりです.これはすべてZUNIONTOREというコマンドのおかげです.次に、このZUNIONTOREコマンドの使い方を説明しましょう.
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [SUM|MIN|MAX]
ZUNIOnstorEコマンドは、実はパラレルセットを求めるコマンドで、彼のパラメータは以下のように説明されています.