Redis 微博微信场景使用案例

本文介绍了Redis在微博微信等场景中的使用,包括利用String进行阅读量统计和缓存,使用Hash操作购物车,利用List实现消息流,通过Set进行抽奖,以及运用Zset构建排行榜。此外,还讨论了分布式锁的实现和Redis解决分布式问题的方法。
摘要由CSDN通过智能技术生成

目录

String

阅读量统计

缓存

分布式锁

解决分布式问题

Hash

操作购物车

List

微博和公众号的消息流

Set

抽奖

微信微博关注模型

Zset

排行榜


注意:本文参考  在微博微信场景下学习Redis数据结构 - 知乎

String

字符串常用操作

SET  key  value             //存入字符串键值对
MSET  key  value [key value ...]     //批量存储字符串键值对
SETNX  key  value                 //存入一个不存在的字符串键值对
GET  key                     //获取一个字符串键值
MGET  key  [key ...]         //批量获取字符串键值
DEL  key  [key ...]         //删除一个键
EXPIRE  key  seconds         //设置一个键的过期时间(秒)

原子加减

INCR  key             //将key中储存的数字值加1
DECR  key             //将key中储存的数字值减1
INCRBY  key  increment     //将key所储存的值加上increment
DECRBY  key  decrement     //将key所储存的值减去decrement

阅读量统计

这个是微信公众号的文章阅读量数量的统计,可以通过redis的string数据结构来解决。使用incr原子操作命令,redis的key是article:readcount:{文章id},当该文章被阅读时,调用incr命令,阅读数量加一,通过get该redis的key,实现文章阅读数量统计的功能。

incr article:readcount:{文章id}
get article:readcount:{文章id}

缓存

可以缓存一个值,或者缓存一个对象

Set Key Value

Get Key

1.Set user:1 value (json格式数据)

2.MSet user:1:name guajia use:1:balance 1888

MGet user1:name user:1:balance

分布式锁

1 下单减库存

解决分布式问题

1 incr命令,统计阅读量(单线程,自动加锁)

2 tomcat的session存到redis中

3 分布式系统全局序列号 

INCRBY orderId 1000 // redis 批量生成序列号提升性能

如项目使用 分库分表 ,就可以使用这个 ,目的是让主键ID 在都是唯一的 ,这个在实际场景非常重要。

使用INCRBY orderId 1000 (这个命令是一次生成1000个订单id 供下次生成订单使用)3 

Ha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值