zadd
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 -> 京畿 |
![]() |
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
返事がかかってなれば、メールでお知らせします。

