ZADD

Redis 開発者教育の申込 Redis 定期点検/技術サポート
Redis Technical Support
Redis エンタープライズサーバー
Redis Enterprise Server

集合にデータを score とともに追加

使い方は zadd key score member です。
sadd に score が追加された形です。
score は必ず 数字でなければなりません。 文字は入力できません。

Example

コマンド>zadd myzip 60 "京畿"
結果>1
コマンド>zadd myzip 20 "ソウル"
結果>1
コマンド>zadd myzip 40 "釜山"
結果>1
コマンド>zrange myzip 0 -1   score 順で表示される
結果> 1) ソウル
2) 釜山
3) 京畿
コマンド>zrange myzip 0 -1 withscores   withscores オプションを使うと score が表示される
結果> 1) 20 -> ソウル
2) 40 -> 釜山
3) 60 -> 京畿

アニメーションを見る

Note score の整数範囲は -9007199254740992 -(2^53) から 9007199254740992 +(2^53) で、
実数範囲は Double precision floating point number です。
withscores オプションを使ったとき redis-cli は value と score をそれぞれ別 line に表示しますが、 Redis Web Client は上の結果のように1 line に score -> value 形式で表示します。

score member を複数入力可能

使い方は zadd key score member score member です。

Example

コマンド>zadd myzip 100 "忠清"80 "全羅"
結果>2
コマンド>zrange myzip 0 -1 withscores
結果> 1) 20 -> ソウル
2) 40 -> 釜山
3) 60 -> 京畿
4) 80 -> 全羅
5) 100 -> 忠清

score が同じなら member で sort される

Example

コマンド>del myzip
結果>1
コマンド>zadd myzip  10 "忠清"  10 "全羅"  10 "ソウル"  10 "京畿"  10 "釜山"
結果>5
コマンド>zrange myzip 0 -1 withscores
結果> 1) 10 -> 京畿
2) 10 -> 釜山
3) 10 -> ソウル
4) 10 -> 全羅
5) 10 -> 忠清

アニメーションを見る


member の重複は許されないが

score は update されます。ただし 0 を返すため score も update されないと誤解することがあります。

Example

コマンド>zadd myzip  1 "ソウル"
結果>0   0 を返す
コマンド>zrange myzip 0 -1 withscores
結果> 1) 1 -> ソウル   score が 1 に update された
2) 10 -> 京畿
3) 10 -> 釜山
4) 10 -> 全羅
5) 10 -> 忠清

アニメーションを見る


version 3.0.2 で追加されたオプション

  • NX: メンバーが既にあれば更新せず、ない場合だけ追加します。
  • XX: 既に存在するメンバーのスコアを更新します。
  • CH: スコアを更新した場合だけ更新したメンバー数を返します。 スコアが同じなら 0 を返し、異なれば更新して 1 を返します。 戻り値にだけ影響するオプションです。
  • INCR: スコアを与えた値だけ増加させます。

version 6.2.0 で追加されたオプション

  • LT: 新しいスコアが現在のスコアより小さい場合だけ既存要素を更新します。
  • GT: 新しいスコアが現在のスコアより大きい場合だけ既存要素を更新します。


構文

ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]   [ex seconds]

  • このコマンドは version 1.2.0 から使用できます。
  • 時間計算量は O(log(N)) です。N は集合の member 個数です。
  • version 2.4 以降から member を複数入力できます。
  • add された member 個数を返します。
  • サブクエリとメンバー自動削除機能は Enterprise サーバーで使用できます。
SQL Insert Redis Enterprise 7.3.0 以上なら INSERT を使ってみてください。
関連コマンド ZRANGE, ZREM, SADD, LPUSH, HSET
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

<< SORTED SETS Introduction ZADD ZADDS >>

Email 返事がかかってなれば、メールでお知らせします。