上一篇: redis学习笔记之-(3)-HyperLogLogs(HLL)的应用


4.1 set汇合: 抽奖

sadd key member [member...] 增加元素到汇合

smembers key 列出所有member

srandmember key count 随机从key的汇合中抉择count个成员, 然而不移除它们;

spop key count 随机从key的汇合中抉择count个成员,并移除它们;

127.0.0.1:6379> sadd choujiang 1000(integer) 1127.0.0.1:6379> sadd choujiang 1001(integer) 1127.0.0.1:6379> sadd choujiang 1002(integer) 1127.0.0.1:6379> sadd choujiang 1003(integer) 1127.0.0.1:6379> sadd choujiang 2000(integer) 1127.0.0.1:6379> sadd choujiang 20003(integer) 1127.0.0.1:6379> sadd choujiang 20003(integer) 0127.0.0.1:6379> smembers choujiang1) "1000"2) "1001"3) "1002"4) "1003"5) "2000"6) "20003"127.0.0.1:6379> srandmember choujiang 31) "1002"2) "1001"3) "20003"127.0.0.1:6379> smembers choujiang1) "1000"2) "1001"3) "1002"4) "1003"5) "2000"6) "20003"127.0.0.1:6379> spop choujiang 21) "2000"2) "1001"127.0.0.1:6379> spop choujiang 21) "1002"2) "20003"127.0.0.1:6379> smembers choujiang1) "1000"2) "1003"127.0.0.1:6379> sadd choujiang 3001 3002 3004(integer) 3127.0.0.1:6379> smembers choujiang1) "1000"2) "1003"3) "3001"4) "3002"5) "3004"127.0.0.1:6379>

4.2 关注/点赞/珍藏/转发/标签

key=like:niewj存储的是关注过niewj的人

sadd(关注):

user1给niewj关注的操作=sadd like:niewj user1

srem(勾销关注:

user1给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) 1127.0.0.1:6379> sadd like:niewj zzf # zzf给niewj关注(integer) 1127.0.0.1:6379> sadd like:niewj anzai # anzai给niewj关注(integer) 1127.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) 1127.0.0.1:6379> smembers like:niewj # 列出给niewj关注的人1) "anzai"2) "along"127.0.0.1:6379> scard like:niewj # 列出给niewj关注的人的人数(integer) 2127.0.0.1:6379> sismember like:niewj along # 判断 along有没有给niewj关注(integer) 1127.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) 1127.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) 1127.0.0.1:6379> sadd like:along along(integer) 1127.0.0.1:6379> sadd like:along xupeng(integer) 1127.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:along1) "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:along1) "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>