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
上一篇:功能强大的python包(一):Numpy


下一篇:添加Java环境变量~即查即用~