上一篇: redis学习笔记之-(3)-HyperLogLogs(HLL)的使用redis
sadd key member [member...]
添加元素到集合shell
smembers key
列出全部membersegmentfault
srandmember key count
随机从key的集合中选择count个成员, 可是不移除它们;学习
spop key count
随机从key的集合中选择count个成员,并移除它们;code
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>
key=like:niewj存储的是关注过niewj的人rem
sadd(关注):get
user1给niewj关注的操做=
sadd like:niewj user1
srem(取消关注:io
user1给niewj取消关注的操做=
srem like:niewj user1
smembers(展示关注的人列表):class
列出给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
关注了个人人: 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>
上面咱们能够看到, 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 , 还差一个并集-sunion
列出关注了niewj和along的全部人, 给他们发通知告诉他们全部人(并集)的关注名单, 让他们本身去选看本身认识不认识, 而后根据他们的选择, 手机数据 进一步确认要不要推荐他们关注;
列出两人的全部关注者:
127.0.0.1:6379> sunion like:niewj like:along # 列出两人的全部关注者 1) "anzai" 2) "along" 3) "niewj" 4) "xupeng" 127.0.0.1:6379>