Redisの基本データ型(セットコレクション)
- セットコレクション
-
- ストレージタイプ
- 一般的な操作コマンド
-
- sadd:指定されたキーのセットに要素を追加します
- scard:コレクション要素の数を取得します
- sdiff:セットと指定されたセットの差の要素を返します。
- sdiffstore:セットと特定のセットの違いの要素を別のセットに格納します
- シンター:指定されたセットの交点を取得します
- sinterstore:指定されたコレクションの共通部分を別のコレクションに保存します
- sismember:セットに指定された要素が含まれているかどうかを判別します
- smembers:コレクションのすべての要素を取得します
- smove:指定した要素をあるコレクションから別のコレクションに移動します
- spop:指定された数の要素をセットからランダムに削除します
- srandmember:セットから指定された数の要素をランダムにクエリします
- rpoplpush:あるリストの末尾要素を別のリストの先頭に配置します
- srem:コレクション内の指定された要素を削除します
- sunion:指定されたセットの和集合を取得します
- sunionstore:指定されたセットの和集合を別のセットに格納します
セットコレクション
ストレージタイプ
文字列タイプの順序付けられていないコレクションを格納します。最大格納量は2 ^ 32-1(約40億)です。
一般的な操作コマンド
sadd:指定されたキーのセットに要素を追加します
-
コマンド
SADD key member [member ...]
-
説明
指定された1つ以上のメンバー要素をセットキーに追加します。指定された1つ以上のメンバーがセットキーにすでに存在する場合は無視します。セットキーが存在しない場合は、新しいセットキーを作成し、メンバー要素をセットに追加します。キー。
キーのタイプがコレクションでない場合、エラーが返されます。
-
戻り値
コレクションにすでに存在する要素を除いて、コレクションに新しく正常に追加された要素の数を返します。
-
例
redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SADD myset "World" (integer) 0 redis> SMEMBERS myset 1) "World" 2) "Hello" redis>
scard:コレクション要素の数を取得します
-
コマンド
SCARD key
-
説明
コレクションに格納されているキーのカーディナリティ(コレクション要素の数)を返します。
-
戻り値
セットのカーディナリティ(要素の数)。キーが存在しない場合は、0を返します。
-
例
redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SCARD myset (integer) 2 redis>
sdiff:セットと指定されたセットの差の要素を返します。
-
コマンド
SDIFF key [key ...]
-
戻り値
結果セットの要素
-
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SDIFF key1 key2 1) "a" 2) "b" redis>
sdiffstore:セットと特定のセットの違いの要素を別のセットに格納します
-
コマンド
SDIFFSTORE destination key [key ...]
-
戻り値
このコマンドはSDIFFに似ていますが、コマンドが結果セットを返さないが、結果をセットに格納する点が異なり
destination
ます。destination
すでに存在する場合は上書きされます。 -
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SDIFFSTORE key key1 key2 (integer) 2 redis> SMEMBERS key 1) "b" 2) "a" redis>
シンター:指定されたセットの交点を取得します
-
コマンド
SINTER key [key ...]
-
説明
キーが存在しない場合は、空のセットと見なされます。指定されたセットが空の場合、結果も空になります(セットは空であり、結果は常に空です)。
-
戻り値
結果セットのメンバーのリスト。
-
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SINTER key1 key2 1) "c" redis>
sinterstore:指定されたコレクションの共通部分を別のコレクションに保存します
-
コマンド
SINTERSTORE destination key [key ...]
-
説明
このコマンドはコマンドに
SINTER
似ていますが、結果セットを直接返す代わりに、結果を宛先セットに保存します。宛先セットが存在する場合、それは上書きされます。
-
戻り値
結果セット内のメンバーの数。
-
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SINTERSTORE key key1 key2 (integer) 1 redis> SMEMBERS key 1) "c" redis>
sismember:セットに指定された要素が含まれているかどうかを判別します
-
コマンド
SISMEMBER key member
-
説明
メンバーメンバーが保存されたセットキーのメンバーであるかどうかを返します。
-
戻り値
- 1メンバー要素はセットキーのメンバーです
- 0メンバー要素がキーのメンバーではないか、セットキーが存在しません
-
例
redis> SADD myset "one" (integer) 1 redis> SISMEMBER myset "one" (integer) 1 redis> SISMEMBER myset "two" (integer) 0 redis>
smembers:コレクションのすべての要素を取得します
-
コマンド
SMEMBERS key
-
説明
キーセットのすべての要素を返します。
この
SINTER
コマンドの効果は、1つのパラメーターを使用するコマンドの効果と同じです。 -
戻り値
コレクション内のすべての要素。
-
例
redis> SADD myset "Hello" (integer) 1 redis> SADD myset "World" (integer) 1 redis> SMEMBERS myset 1) "World" 2) "Hello" redis>
smove:指定した要素をあるコレクションから別のコレクションに移動します
-
コマンド
SMOVE source destination member
-
説明
メンバーをソースコレクションから宛先コレクションに移動します。他のクライアントの場合、要素は特定の時間にソースコレクションまたは宛先コレクションのメンバーとして表示されます。
ソースコレクションが存在しないか、指定された要素が含まれていない場合、moveコマンドは何もせずに0を返します。それ以外の場合、オブジェクトはソースコレクションから削除され、宛先コレクションに追加されます。要素が宛先にすでに存在する場合コレクション、moveコマンドは、ソースコレクションから要素を削除するだけです。ソースと宛先がコレクションタイプでない場合、エラーが返されます。
-
戻り値
- 1-要素が正常に削除されました1
- 0-要素はソースコレクションのメンバーではなく、操作はありません
-
例
redis> SADD myset "one" (integer) 1 redis> SADD myset "two" (integer) 1 redis> SADD myotherset "three" (integer) 1 redis> SMOVE myset myotherset "two" (integer) 1 redis> SMEMBERS myset 1) "one" redis> SMEMBERS myotherset 1) "three" 2) "two" redis>
spop:指定された数の要素をセットからランダムに削除します
-
コマンド
SPOP key [count]
-
説明
保存された
key
セットから1つ以上のランダムな要素を削除して返します。count
パラメータはそれ以降のバージョンで提供されますが、2.6、2.8、および3.0では使用できません。 -
例
redis> SADD myset "one" (integer) 1 redis> SADD myset "two" (integer) 1 redis> SADD myset "three" (integer) 1 redis> SPOP myset 1) "three" redis> SMEMBERS myset 1) "one" 2) "two" redis> SADD myset "four" (integer) 1 redis> SADD myset "five" (integer) 1 redis> SPOP myset 3 1) "one" 2) "four" 3) "two" redis> SMEMBERS myset 1) "five"
srandmember:セットから指定された数の要素をランダムにクエリします
-
コマンド
SRANDMEMBER key [count]
-
説明
キーパラメータのみを指定してから、キーセット内の要素をランダムに返します。
Redis 2.6以降、countパラメーターを受け入れることができます。countが整数で要素数より少ない場合、countの異なる要素を含む配列が返されます。countが整数でコレクション内の要素数より大きい場合、コレクション全体のすべてのみが返されます。要素、countが負の数の場合、count要素の絶対値を含む配列を返します。countの絶対値が要素の数より大きい場合、次のようになります。返された結果セット内の要素の複数のオカレンス。
キーパラメータのみを指定した場合、このコマンドの機能はSPOPコマンドと同様ですが、SPOPコマンドは選択したランダム要素をセットから削除しますが、SRANDMEMBERは操作を行わずにランダム要素のみを返します。
-
戻り値
countパラメーターが使用されていない場合、コマンドはランダムな要素を返します。キーが存在しない場合はnilを返します。
countパラメーターを使用して、要素のランダム配列を返すか、キーが存在しない場合は空の配列を返します。
-
例
redis> SADD myset one two three (integer) 3 redis> SRANDMEMBER myset "one" redis> SRANDMEMBER myset 2 1) "three" 2) "one" redis> SRANDMEMBER myset -5 1) "one" 2) "one" 3) "one" 4) "one" 5) "one" redis>
rpoplpush:あるリストの末尾要素を別のリストの先頭に配置します
-
コマンド
RPOPLPUSH source destination
-
説明
ソースに格納されているリストの最後の要素(リストの最後の要素)を原子的に返して削除し、この要素を宛先(リストの先頭)に格納されているリストの最初の要素の位置に配置します。
例:ソースがリストa、b、およびcを格納し、宛先がリストx、y、およびzを格納するとします。RPOPLPUSHを実行した結果、ソースはリストa、bを格納し、宛先はリストc、x、y、およびzを格納します。
ソースが存在しない場合は、nil値を返し、何もしません。ソースと宛先が同じである場合、この操作はリストの最後の要素を削除し、その要素をリストの先頭に配置することと同じであるため、このコマンドはリストをローテーションするコマンドと見なすこともできます。
-
戻り値
削除されて入れられた要素
-
例
redis> RPUSH mylist "one" (integer) 1 redis> RPUSH mylist "two" (integer) 2 redis> RPUSH mylist "three" (integer) 3 redis> RPOPLPUSH mylist myotherlist "three" redis> LRANGE mylist 0 -1 1) "one" 2) "two" redis> LRANGE myotherlist 0 -1 1) "three" redis>
srem:コレクション内の指定された要素を削除します
-
コマンド
SREM key member [member ...]
-
説明
キーセット内の指定された要素を削除します。指定された要素がキーセット内の要素でない場合は無視されます。キーセットが存在しない場合は空のセットと見なされます。コマンドは0を返します。
キーの種類が設定されていない場合は、エラーが返されます。
-
戻り値
存在しないメンバーを除く、セットから削除された要素の数。
-
例
redis> SADD myset "one" (integer) 1 redis> SADD myset "two" (integer) 1 redis> SADD myset "three" (integer) 1 redis> SREM myset "one" (integer) 1 redis> SREM myset "four" (integer) 0 redis> SMEMBERS myset 1) "three" 2) "two" redis>
sunion:指定されたセットの和集合を取得します
-
コマンド
SUNION key [key ...]
-
説明
指定された複数のセットの和集合内のすべてのメンバーを返します。
存在しないキーは、空のセットと見なすことができます。
-
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SUNION key1 key2 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" redis>
sunionstore:指定されたセットの和集合を別のセットに格納します
-
コマンド
SUNIONSTORE destination key [key ...]
-
説明
このコマンドはSUNIONコマンドに似ていますが、結果セットを返さないが、結果を宛先セットに格納する点が異なります。
宛先がすでに存在する場合は、上書きされます。
-
戻り値
結果セット内の要素の数。
-
例
redis> SADD key1 "a" (integer) 1 redis> SADD key1 "b" (integer) 1 redis> SADD key1 "c" (integer) 1 redis> SADD key2 "c" (integer) 1 redis> SADD key2 "d" (integer) 1 redis> SADD key2 "e" (integer) 1 redis> SUNIONSTORE key key1 key2 (integer) 5 redis> SMEMBERS key 1) "c" 2) "e" 3) "b" 4) "a" 5) "d" redis>