微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis五种数据及其应用场景

redis的安装流程,见官网:
redis下载/安装
建议用稳定版
5种常用类型的应用场景
String类型:

  • 计数器
    INCR article:readcount:{文章id}
    GET article:readcount:{文章id}
  • Web集群session共享
    spring session + redis实现session共享
  • 分布式系统全局序列号
    INCRBY orderId 1000 //redis批量生成序列号提升性能

Hash类型:
HSET key field value

  • 对象的缓存,用起来很方便
  • 购物车,key作为用户的id,field作为商品的id,value作为商品的数量,这样对商品的数量增加,减少,统计都非常方

便。
list类型:
LPUSH key value [value …]
RPUSH key value [value …]

  • Stack(栈) = LPUSH + LPOP
  • Queue(队列)= LPUSH + RPOP
  • Blocking MQ(阻塞队列)= LPUSH + BRPOP
  • 微博消息和微信公号消息的订阅
    很多人订阅了微博大V,微博大V一发布信息,可以直接推送给订阅的粉丝,就可以用list类型
    set类型
    SADD key member [member …]
    SREM key member [member …]
  • 微信抽奖小程序
    1)点击参与抽奖加入集合
    SADD key {userlD}
    2)查看参与抽奖所有用户
    SMEMBERS key
    3)抽取count名中奖者
    SRANDMEMBER key [count] / SPOP key [count]
  • 微信微博点赞,收藏,标签
  1. 点赞
    SADD like:{消息ID} {用户ID}
  2. 取消点赞
    SREM like:{消息ID} {用户ID}
  3. 检查用户是否点过赞
    SISMEMBER like:{消息ID} {用户ID}
  4. 获取点赞的用户列表
    SMEMBERS 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 }

  • 集合操作实现微博微信关注模型
    比如说:我和张三同时关注了大V,推荐谁也关注了大V;
    我和大V的都关注了张四,推荐关注张四的人给我们
  • 集合操作实现电商商品筛选
    可以对不同的商品进行操作
    SADD brand:huawei P40
    SADD brand:xiaomi mi-10
    SADD brand:iPhone iphone12
    SADD os:android P40 mi-10
    Zset集合操作实现排行榜
    1)点击新闻
    ZINCRBY hotNews:20190819 1 守护香港
    2)展示当日排行前十
    ZREVRANGE hotNews:20190819 0 9 WITHscoreS
    3)七日搜索榜单计算
    ZUNIONSTORE hotNews:20190813-20190819 7
    hotNews:20190813 hotNews:20190814… hotNews:20190819
    4)展示七日排行前十
    ZREVRANGE hotNews:20190813-20190819 0 9 WITHscoreS

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐