redis 应用场景

字符串键-计数器

 第一个如图的阅读量或者收藏或者点赞

通过字符串的2个API可以实现

set  key  0  //set readcount::{帖子id}  0 设置阅读键

incrby  key  1//incrby readcount::{帖子id}  每阅读一次

get key  //get  readcount::{帖子id}   获取阅读量

如图:

Hash结构键的设计

如下面的图一张表teacher:

Hash键的意义

这个在面试的过程中经常问道

  1. hash键可以将信息凝聚在一起,而不是直接分散的存储在整个redis中,这不仅方便了数据管理,还可以尽量避免一定的误操作;
  2. 避免键名冲突
  3. 减少cpu和内存占用;因为redis定期扫描对最外层的键定期进行维护和管理,比如:过期的键

不适合使用hash键的情况

  1. 过期功能的使用,过期功能只能使用在key上;
  2. 二进制的操作命令如:setbit 、getbit、bittop
  3. 需要考虑数据量分布的问题如下面图,如果用String 会根据计算分布在不同的节点上

而hash 最外层的是一个键比如teacher,里面的数据结构相当于表内容,如果teacher有100万,只能根据最外成的键分布到一个节点上。这个是不允许的。

列表List键

列表键常见操作

如果往list中lpush 键值得时候,最后放进去的,如果取值的话我们会第一个取到。

基于List键,实现阻塞消息队列

基于列表键,实现新浪、Twitter用户消息列表功能

实现了最新的几十条消息或者评论,就可以在消息列表

因为lpush  {消息_id}    最新消息列表   在消费获取的是第一个

同样认证了,一个明星的博客,发表一个博文,粉丝瞬间有上百万,关系型数据库是扛不住的

Set

我们可以类比java中的set 无序、唯一(不重复)

集合键常见操作

基于集合键,实现直播刷礼物,转发参加抽奖活动

基于集合键,实现点赞、签到、like等功能

8001 是博客id  1001是用户id

集合Set运算

注意:sinter set1   set2  set3 为什么是第一个得出的值是c  ,是因以第一个集合为主去比较后面的,结合下面的图交集、并集、差集来理解,针对这个我们可以实现QQ关注模型(往下面看)

实现关注模型

利用上面的运行算 可以实现QQ空间关注的人:如图

实现电商的商品筛选

如图:根据品牌、屏幕尺寸、处理器、内存几个指标 来求并集 筛选出电脑

实现支付系统的对账

如图:第一、订单sdiff 支付 得到订单的数据不对,第二、用支付sdiff订单可以得到 支付中数据不对的

通过两次比较就可以得到有问题的对账

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值