redis学習ノートの-(4)-set(無秩序重複集合)

4572 ワード

下一篇:redis学習ノートの-(3)-HyperLogLogs(HLL)の使用
4.1 set集合:抽選sadd key member [member...]コレクションに要素を追加smembers keyすべてのメンバーを一覧表示srandmember key count keyのセットからcount個のメンバーをランダムに選択しますが、削除しません.spop key count keyのセットからcount個のメンバーをランダムに選択し、削除する.
127.0.0.1:6379> sadd choujiang 1000
(integer) 1
127.0.0.1:6379> sadd choujiang 1001
(integer) 1
127.0.0.1:6379> sadd choujiang 1002
(integer) 1
127.0.0.1:6379> sadd choujiang 1003
(integer) 1
127.0.0.1:6379> sadd choujiang 2000
(integer) 1
127.0.0.1:6379> sadd choujiang 20003
(integer) 1
127.0.0.1:6379> sadd choujiang 20003
(integer) 0
127.0.0.1:6379> smembers choujiang
1) "1000"
2) "1001"
3) "1002"
4) "1003"
5) "2000"
6) "20003"
127.0.0.1:6379> srandmember choujiang 3
1) "1002"
2) "1001"
3) "20003"
127.0.0.1:6379> smembers choujiang
1) "1000"
2) "1001"
3) "1002"
4) "1003"
5) "2000"
6) "20003"
127.0.0.1:6379> spop choujiang 2
1) "2000"
2) "1001"
127.0.0.1:6379> spop choujiang 2
1) "1002"
2) "20003"
127.0.0.1:6379> smembers choujiang
1) "1000"
2) "1003"
127.0.0.1:6379> sadd choujiang 3001 3002 3004
(integer) 3
127.0.0.1:6379> smembers choujiang
1) "1000"
2) "1003"
3) "3001"
4) "3002"
5) "3004"
127.0.0.1:6379>

4.2注目/いいね/お気に入り/転送/ラベル
key=like:niewjはniewjに注目した人を格納する
sadd(注目):
user 1がniewjに注目する操作=sadd like:niewj user1
srem(注目を外す:
user 1がniewjに注目を取り消す操作=srem like:niewj user1
smembers(注目を示す人のリスト):
niewjに注目しているすべての人をリストします.smembers like:niewj
scard(注目人数をまとめる):
niewjが注目しているすべての人にまとめられた人数:scard like:niewj
Sismember(誰かが注目しているかどうかを判断する):
niewjに注目している人の中にalongがいるかどうかを判断します.sismember like:niewj along
次のようになります.
127.0.0.1:6379> sadd like:niewj along # along niewj  
(integer) 1
127.0.0.1:6379> sadd like:niewj zzf # zzf niewj  
(integer) 1
127.0.0.1:6379> sadd like:niewj anzai # anzai niewj  
(integer) 1
127.0.0.1:6379> smembers like:niewj #    niewj    
1) "anzai"
2) "zzf"
3) "along"
127.0.0.1:6379> srem like:niewj zzf # zzf     niewj   
(integer) 1
127.0.0.1:6379> smembers like:niewj #    niewj    
1) "anzai"
2) "along"
127.0.0.1:6379> scard like:niewj #    niewj       
(integer) 2
127.0.0.1:6379> sismember like:niewj along #    along    niewj  
(integer) 1
127.0.0.1:6379> sismember like:niewj zzf #    zzf    niewj  
(integer) 0

4.3注目モデル
4.3.4共通の関心:
私に注目してくれた人:like:niewj
alongに注目した人:like:along
次のようになります.
127.0.0.1:6379> smembers like:niewj #      niewj  
1) "anzai"
2) "along"
127.0.0.1:6379> sadd like:niewj xupeng #        : xupeng
(integer) 1
127.0.0.1:6379> smembers like:niewj #      niewj  
1) "anzai"
2) "along"
3) "xupeng"
#       along  
127.0.0.1:6379> sadd like:along niewj
(integer) 1
127.0.0.1:6379> sadd like:along along
(integer) 1
127.0.0.1:6379> sadd like:along xupeng
(integer) 1
127.0.0.1:6379> smembers like:along #       along  :
1) "along"
2) "xupeng"
3) "niewj"
# ====>    niewj along      :
127.0.0.1:6379> sinter like:niewj like:along
1) "along"
2) "xupeng"
127.0.0.1:6379> 

4.3.5注目を推薦する(知り合いの可能性がある)
alongとxupengはniewjとalongに注目していることがわかります.このように、私たちは彼らの関心者の中から非共通の関心者を見つけて、それから彼らに相手の関心を推薦することができます.社交関係の中で、共通の知っている人以外の人に、彼の知らない人の認識を紹介します.
まず、alongに注目していますが、niewjに注目していない人をリストします.
127.0.0.1:6379> sdiff like:along like:niewj #    along      niewj  
1) "niewj"
127.0.0.1:6379>

これでniewjに推薦して、niewjに注目させることができます.
niewjに注目していますがalongに注目していない人:
127.0.0.1:6379> sdiff like:niewj like:along
1) "anzai"

これでanzaiにalongに注目させることができます.
交差-sinter差セット-sdiff、さらに1つの並列セット-sunion
niewjとalongに注目しているすべての人をリストして、彼らにすべての人(合併)の注目リストを通知して、彼らに自分で自分の認識を見て、それから彼らの選択によって、携帯電話のデータは更に彼らに注目を推薦するかどうかを確認させます;
2人のすべての関心者をリストします.
127.0.0.1:6379> sunion like:niewj like:along #           
1) "anzai"
2) "along"
3) "niewj"
4) "xupeng"
127.0.0.1:6379>