Redis 集合(Set)
Redis の Set は String 型の順序なし集合です。集合のメンバーは一意であり、つまり集合内に重複したデータは存在できません。
集合オブジェクトのエンコーディングは intset または hashtable にすることができます。
Redis では集合はハッシュテーブルによって実装されているため、追加、削除、検索の計算量はすべて O(1) です。
集合内の最大メンバー数は 232- 1 (4294967295、各集合は40億以上のメンバーを格納できます)。
例
redis 127.0.0.1:6379> SADD サンプルkey redis (integer) 1 redis 127.0.0.1:6379> SADD サンプルkey mongodb (integer) 1 redis 127.0.0.1:6379> SADD サンプルkey mysql (integer) 1 redis 127.0.0.1:6379> SADD サンプルkey mysql (integer) 0 redis 127.0.0.1:6379> SMEMBERS サンプルkey 1) "mysql" 2) "mongodb" 3) "redis"
上記の例では、私たちはSADDコマンドを使用して、名前をサンプルkeyとする集合に3つの要素を挿入しました。
Redis 集合コマンド
以下の表は Redis 集合の基本コマンドを示しています:
| 番号 | コマンドと説明 |
|---|---|
| 1 | SADD key member1 [member2] 集合に1つ以上のメンバーを追加する |
| 2 | SCARD key 集合のメンバー数を取得する |
| 3 | SDIFF key1 [key2] 最初の集合と他の集合との差集合を返す。 |
| 4 | SDIFFSTORE destination key1 [key2] 指定されたすべての集合の差集合を返し、destination に格納する |
| 5 | SINTER key1 [key2] 指定されたすべての集合の積集合を返す |
| 6 | SINTERSTORE destination key1 [key2] 指定されたすべての集合の積集合を返し、destination に格納する |
| 7 | SISMEMBER key member member 要素が集合 key のメンバーであるかどうかを判定する |
| 8 | SMEMBERS key 集合内のすべてのメンバーを返す |
| 9 | SMOVE source destination member member 要素を source 集合から destination 集合に移動する |
| 10 | SPOP key 集合からランダムなメンバーを1つ削除して返す |
| 11 | SRANDMEMBER key [count] 集合から1つ以上のランダムなメンバーを返す |
| 12 | SREM key member1 [member2] 集合から1つ以上のメンバーを削除する |
| 13 | SUNION key1 [key2] 指定されたすべての集合の和集合を返す |
| 14 | SUNIONSTORE destination key1 [key2] 指定されたすべての集合の和集合を destination 集合に格納する |
| 15 | SSCAN key cursor [MATCH pattern] [COUNT count] 集合内の要素を反復処理する |