English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Redis有序集合(sorted set)

Redisは集合と同様にstringタイプの要素の集合であり、重複のメンバーは許可されません。

違いは、各要素が double 型のスコアに関連付けられていることです。redisは、集合内のメンバーを小到大にソートするためにスコアを使用しています。

有序集合のメンバーはユニークですが、スコア(score)は重複できます。

コレクションはハッシュテーブルで実装されており、追加、削除、検索の複雑度はすべて O(1)。 コレクションの最大メンバー数は 232 - 1 (4294967295, 各コレクションには40多億個のメンバー)。

オンラインサンプル

redis 127.0.0.1:6379> ZADD w3codeboxkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD w3codeboxkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE w3codeboxkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

上記の例では、以下のコマンドを使って ZADD redisの有序集合に3つの値を追加し、スコアに関連付けました。

Redis 有序集合コマンド

以下の表に redis 有序集合の基本コマンドを示します:

序号コマンド及び説明
1ZADD key score1 member1 [score2 member2]
有序集合に一つまたは複数のメンバーを追加し、または既存のメンバーのスコアを更新します
2ZCARD key
有序集合のメンバー数を取得します
3ZCOUNT key min max
有序集合で指定した範囲のスコアのメンバー数を計算します
4ZINCRBY key increment member
有序集合で指定したメンバーのスコアに増分 increment を加えます
5ZINTERSTORE destination numkeys key [key ...]
指定された一つまたは複数の有序集合の交集合を計算し、結果を新しい有序集合 destination に保存します
6ZLEXCOUNT key min max
有序集合で指定した辞書範囲内のメンバーの数を計算します
7ZRANGE key start stop [WITHSCORES]
インデックス範囲によって有序集合の指定範囲内のメンバーを返します
8ZRANGEBYLEX key min max [LIMIT offset count]
辞書範囲によって有序集合のメンバーを返します
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
スコアによって有序集合の指定範囲内のメンバーを返します
10ZRANK key member
有序集合中指定成员的索引を返します
11ZREM key member [member ...]
指定されたメンバーを一つまたは複数削除します
12ZREMRANGEBYLEX key min max
指定されたスコア範囲内のすべてのメンバーを削除します
13ZREMRANGEBYRANK key start stop
指定されたランク範囲内のすべてのメンバーを削除します
14ZREMRANGEBYSCORE key min max
指定されたスコア範囲内のすべてのメンバーを削除します
15ZREVRANGE key start stop [WITHSCORES]
指定されたスコア範囲内のメンバーを返します。インデックスを通じて、スコアは高い順にソートされます
16ZREVRANGEBYSCORE key max min [WITHSCORES]
指定されたスコア範囲内のメンバーを返します。スコアは高い順にソートされます
17ZREVRANK key member
有序集合の指定メンバーのランクを返します。有序集合のメンバーはスコア値の降順(大きい順)でソートされます
18ZSCORE key member
有序集合のメンバーのスコア値を返します
19ZUNIONSTORE destination numkeys key [key ...]
指定された一つまたは複数の有序集合の並集合を計算し、新しいkeyに保存します
20ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代的に有序集合の要素(要素メンバーおよび要素値を含む)