redis漸入佳境(04)setsタイプ

5961 ワード

redisのsetsタイプ、setsタイプは集合タイプで、数学の中の集合に似ていて、無秩序に繰り返さないデータのセットの下でsetsの各種のよく使う防犯を紹介します
まずsaddとsmembersメソッドの使用方法は以下の通りです.
saddコレクション名コレクションの要素は1を返し、参加に成功しました.0を返しました.参加に失敗しました.
smembersコレクション名コレクション内のすべての要素を表示
具体的なコードは以下の通りです.
[redies@localhost ~]$ redis-cli
redis 127.0.0.1:6379> sadd myset1 one
(integer) 1
redis 127.0.0.1:6379> sadd myset1 two
(integer) 1
redis 127.0.0.1:6379> sadd myset1 three
(integer) 1
redis 127.0.0.1:6379> sadd myset1 four
(integer) 1
redis 127.0.0.1:6379> sadd myset1 five
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "three"
3) "two"
4) "one"
5) "five"
redis 127.0.0.1:6379>

sremメソッドは、要素sremコレクション名要素名を削除することです.
spopはランダムに要素をポップアップします
[redies@localhost ~]$ redis-cli
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "three"
3) "two"
4) "one"
5) "five"
redis 127.0.0.1:6379> srem myset1 one
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "two"
2) "four"
3) "three"
4) "five"
redis 127.0.0.1:6379> spop myset1
"three"
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379>

sdiffメソッドは、差分セットを取り、メソッド:sdiffセット1セット2は、結果がセット1に存在し、セット2に存在しない要素を返す
sdiffstoreメソッドは、差セットを取って別のセットに入れる方法です.sdiffstoreセット3セット1セット2セット1に存在し、セット2に存在しない要素をセット3に入れます.
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sdiff myset1 mykey2
1) "five"
2) "two"
redis 127.0.0.1:6379> sdiffstore myset2 myset1 mykey2
(integer) 2
redis 127.0.0.1:6379> smembers myset2
1) "five"
2) "two"
redis 127.0.0.1:6379>

sinterメソッドは交差をとり,次のようにsinter集合1集合2が両者の受け渡し要素を返す.
sinterstoreメソッドは、交差を取り、交差要素を3番目の集合に格納する方法です.sinterstore集合3集合2集合1;集合1集合2の交差を集合3に入れる
インスタンスコードは次のとおりです.
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sinter myset1 mykey2
1) "four"
redis 127.0.0.1:6379> sinterstore myset3 myset1 mykey2
(integer) 1
redis 127.0.0.1:6379> smembers myset3
1) "four"
redis 127.0.0.1:6379>

suionは並列集合をとる用法は以下の通りである:sunion集合1集合2は両者の並列集合を返す
sunionstoreは、sunionstore集合3集合1集合2;sunionstore集合3集合1集合2;集合1の集合2の集合を集合3に入れる
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> sunion myset1 mykey2
1) "six"
2) "four"
3) "five"
4) "two"
5) "one"
redis 127.0.0.1:6379> sunionstore myset4 myset1 mykey2
(integer) 5
redis 127.0.0.1:6379> smembers myset4
1) "six"
2) "four"
3) "five"
4) "two"
5) "one"
redis 127.0.0.1:6379>

smoveは、集合1の要素を集合2に移動する方法である:smove集合1の集合2の要素x;
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "two"
3) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "one"
redis 127.0.0.1:6379> smove myset1 mykey2 two
(integer) 1
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "two"
4) "one"
redis 127.0.0.1:6379>

scardはコレクションを返す要素の個数です.方法はscardコレクション名です.
sismemberは、ある要素が集合の要素であるかどうかを表示します.方法はsismember集合名要素です.
srandmemberはランダムに1つの集合を表示する要素です:srandmember集合名;
redis 127.0.0.1:6379> smembers myset1
1) "four"
2) "five"
redis 127.0.0.1:6379> smembers mykey2
1) "four"
2) "six"
3) "two"
4) "one"
redis 127.0.0.1:6379> scard myset1
(integer) 2
redis 127.0.0.1:6379> scard mykey2
(integer) 4
redis 127.0.0.1:6379> sismember myset1 four
(integer) 1
redis 127.0.0.1:6379> sismember myset1 four1
(integer) 0
redis 127.0.0.1:6379> SRANDMEMBER myset1
"four"
redis 127.0.0.1:6379> SRANDMEMBER myset1
"five"
redis 127.0.0.1:6379> SRANDMEMBER myset1
"five"
redis 127.0.0.1:6379>