【Redis】Set常见应用场景

  • 微信抽奖小程序
1》点击参与抽奖加入集合

SADD  key  {userID}

2》查看参与抽奖所有用户

SMEMBERS key

3》抽取count名中奖者

SRANGEMEMBER key [count]  #不会从原集合中删除元素,适合一次性抽取所有中奖用户

STOP key [count] #会从原集合中删除元素,适合分批抽取中奖用户

 

  • 微信微博点赞,收藏,标签
1》点在

SADD like:{消息ID} {用户ID}

2》取消点赞

SREM like:{消息ID} {用户ID}

3》检查用户是否点过赞

SISMEMBER like:{消息ID} {用户ID}

4》获取点赞的用户列表

SMEMVERS like:{消息ID}

5》获取点赞用户数

SCARD like:{消息ID}

 

 

  • 集合操作

 

 

SINTER set1 set2 set3 -> {c}

SUNION set1 set2 set3 -> {a,b,c,d,e}

SDIFF set1 set2 set3 -> {a}

 

  • 集合操作实现微博微信关注模型
1》菠萝(我)关注的人:

boluoSet -> {caomei,pingguo,xiangjiao}

2》草莓 关注的人: 

caomeiSet -> {boluo,pingguo,xiangjiao,yingtao}

3》苹果 关注的人:

pingguoSet -> {boluo,caomei,yingtao,xiangjiao,fanqie}

4》我和草莓 的共同关注:

SINTER boluoSet caomeiSet --> {pingguo,xiangjiao}

5》我关注的人也关注 草莓:

SISMEMBER caomeiSet caomei

SISMEMBER lubanSet caomei

6》我可能认识的人:

SDIFF caomeiSet boluoSet ->(boluo,yingtao)

 

posted @ 2020-05-09 16:26  boluo1230  阅读(846)  评论(0编辑  收藏  举报