共计 3024 个字符,预计需要花费 8 分钟才能阅读完成。
上一篇: 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) 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(关注):
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) 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 , 还差一个 并集 -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>