zoukankan      html  css  js  c++  java
  • 【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)

    学而不思则罔 思而不学则殆 !
  • 相关阅读:
    RabbitMQ学习笔记【1】
    【转】ES6学习笔记
    vue学习笔记【2】--模板语法
    vue学习笔记【1】
    npm使用
    Golang密码复杂度校验
    GORM的增删改查
    GORM:创建数据
    golang的time包:时间字符串和时间戳的相互转换
    输出10以内的所有正整数(while+if用法)
  • 原文地址:https://www.cnblogs.com/boluopabo/p/12846817.html
Copyright © 2011-2022 走看看