Redis 数据类型--set
set集合
常用命令:
SADD key member [member ...] //往集合中存入数据,若元素存在,则忽略数据;若key不存在,则新建
SREM key member [member ...] //删除集合中的元素
SMEMBERS key //获取集合中的所有元素
SCARD key //获取集合中元素的个数
SISMEMBER key member //判断member元素是否存在于集合key中
SRANDMEMBER key [count] //随机从集合去选出count个元素,元素不从key中删除
SPOP key [count] //随机从集合中选出count个元素,元素从key集合中删除
Set运算操作:
SINTER key [key ...] //交际运算
SINTERSTORE destination key [key ...] //将交集运算的结果存入新集合destination中
SUNION key [key ...] //并集运算
SUNIONSTORE destination key [key ...] //将并集运算的结果存入新集合destination中
SDIFF key [key ...] //差集运算
SDIFFSTORE key [key ...] //将差集运算的结果存入新集合destination中
应用场景:
抽奖活动小程序
1)参与抽奖:SADD key [userid ...] //key为活动用户集合,userid为用户。
2)查看所有参与抽奖的用户:SMEMBER key
3)抽取count名中奖者:SRANDMEMBER/SPOP key [count]
微信朋友圈点赞、收藏、标签:
1)点赞:SADD like:{消息ID} {用户ID} //某某动态的点赞集合为like:{消息ID} 谁点赞:{用户ID}
2)取消点赞:SREM like:{消息ID} {用户ID}
3)检查用户是否点过赞:SISMEMBER like:{消息ID} {用户ID}
4)获取用户点赞的列表:SMEMBERS like:{消息ID}
5)获取点赞用户数:SCARD like:{消息ID}
集合操作:微博关注模型
我(A)查看了B的微博,我的关注的人的集合为setA,B关注的人的集合为setB,求:
共同关注:SINTER setA setB
我关注的人也关注了B:SISMEMBER set:{我关注的人} B
我可能认识的人(求差集):SDIFF setB setA

浙公网安备 33010602011771号