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] - 微信微博点赞,收藏,标签
- 点赞
SADD like:{消息ID} {用户ID} - 取消点赞
SREM like:{消息ID} {用户ID} - 检查用户是否点过赞
SISMEMBER like:{消息ID} {用户ID} - 获取点赞的用户列表
SMEMBERS like:{消息ID} - 获取点赞用户数
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