Redis不同数据类型使用案例

1、Hash

  • 举例:电商购物车

1)添加商品->HSET cart:1001 10088 1

2)增加数量->HINCRBY cart:1001 10088 1

3)商品总数->HLEN cart:1001

4)删除商品->HDEL cart:1001 10088

5)获取购物车所有商品-> HGETALL cart:1001

 

  • 优点:

1)同类数据归类整合存储,方便数据管理

2)相比String操作消耗内存与cpu更小

3)相比String存储更节省空间

  • 缺点:

1)过期功能不能使用在field上,只能用在key上

2)Redis集群架构下不适合大规模使用(数据热点问题)

 

2、List

  • 实现常用数据结构:

Stack(栈)= LPUSH + LPOP

Queue(队列)= LPUSH + RPOP

Blocking MQ(阻塞队列)= LPUSH +BRPOP

  • 举例:微博消息和微信公众号消息(写扩散模式)

1)关注的微博发布消息-> LPUSH msg:1001 10086

2)查看微博最新消息-> LRANGE msg:1001 0 4

 

3、Set

  • 举例:微信抽奖小程序

1)点击参与抽奖加入集合->SADD game 1001

2)查看参与抽奖所有用户->SMEMBER game

3)抽取5名中奖者->SRANDMEMBER game 5 或 SPOP game 5

  • 举例:微信微博点赞,收藏,标签

1)点赞->SADD like:10086 1001

2)取消点赞->SREM like:10086 1001

3)检查用户是否点过赞->SISMEMBER like:10086 1001

4)获取点赞的用户列表->SMEMBER like:10086

5)获取点赞用户数->SCARD like:10086

  • 举例:好友列表

1)共同关注的好友->SINTER Aset Bset

2)我关注的人也关注他->

SISMEMBER Aset XXX

SISMEMBER Bset XXX

3)我可能认识的人->SDIFF ASet BSet

 

4、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-hotNews:20190819 0 9 WITHSCORES

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值