慕课网-一站式学习Redis从入门到高可用分布式实践-第2章-API的理解和使用-第2章-set
set(集合)
1.集合结构
2.集合特点
1)无序
2)无重复
3)集合间操作
3.集合内API
1)sadd
向集合key添加element(如果element已经存在,添加失败)
sadd key element
o(1)
2)srem
将集合key中的element移除掉
srem key element
o(1)
3)scard
假设 user:1:follow 包含 music his sports it
计算结合大小
scard user:1:follow = 4
4)sismember
判断it是否在集合中
sismember user:1:follow it = 1(存在)
5)srandmember
从集合中随机挑count个元素
srandmember usr:1:follow count = his
6)spop
从集合中随机弹出一个元素
spop user:1:follow = sports
7)smembers
获取集合所有元素
smembers user:1:follow = music his sports it
注意:smembers 是无序的,因为它是获取所有元素,所以使用时必须小心,如果集合元素太多会导致阻塞
srandmember 和 spop 的区别
1)spop从集合弹出
2)srandmember 不会破坏集合
集合内实战
sadd user:1:follow it new his sports smembers user:1:follow spop user:1:follow smembers user:1:follow scard user:1:follow sismember user:1:follow entertainment
实战抽奖系统
实战标签(tag)
1)给用户添加标签
sadd user:1:tags tag1 tag2 tag5 sadd user:2:tags tag2 tag3 tag5 ... sadd user:k:tags tag1 tag2 tag4
2)给标签添加用户
sadd tag1:users user:1 user:3 sadd tag2:users user:1 user:2 user:3 ... sadd tagk:users user:1 user:2
集合间API
1)sdiff
user:1:follow 包含数据 it music his sports
user:2:follow 包含数据 it news ent sports
差集
sdiff user:1:follow user:2:follow = music his
2)sinter
交集
sinter user:1:follow user:2:follow = it sports
3)sunion
并集
sunion user:1:follow user:2:follow = it music his sports news ent
4)其它
将差集、交集、并集结果保存在 destkey 中
sdiff|sinter|suion + store destkey ...
TIPS
SADD = Tagging
SPOP/SRANDMEMEN = Random item
SADD + SINTER = Social Gragp
posted on 2019-11-21 13:28 herisson_pan 阅读(13) 评论(0) 收藏 举报
浙公网安备 33010602011771号