慕课网-一站式学习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)    收藏  举报

导航