Redis在项目中的运用总结

1 概述

Redis作为一款性能优异的内存数据库,在互联网公司有着多种应用场景,本文介绍笔者在项目中使用Redis的场景。主要从以下几个方面介绍:

  • 分布式锁
  • 接口限流器
  • 订单缓存
  • Redis和DB数据一致性处理
  • 防止缓存穿透和雪崩
  • 分布式session共享

2 分布式锁

Redis实现分布式锁

3 接口限流器

Redis实现限流器

4 订单缓存

整个订单的存储结构如下:

这里写图片描述

  1. 使用Redis的zset数据结构存储每个用户的订单,按照下单时间倒序排列,用户唯一标识作为key,用户的订单集合作为value,使用订单创建时间的时间戳+订单号后三位作为分数
  2. 为什么不直接使用下单时间的时间戳作为分数?因为下单时间只精确到秒,同一秒可能出现多个订单情况,这样就会出现相同的分数,而加上订单号后三位就能基本上避免这种情景。
  3. 只放用户的前N条订单即可,因为很少有用户会查看很久以前的订单,这样做会节省很多空间。如果有用户需要查看前N条之后的订单,再从数据库中查询即可,当然这种概率就比较小了。

5 Redis和DB数据一致性处理

只要有多份数据,就会涉及到数据一致性的问题。Redis和数据库的数据一致性,也是必然要面对的问题。我们这边的订单数据是先更新数据库,数据库更新成功后,再更新缓存,若数据库操作成功,缓存操作失败了,就出现了数据不一致的情况。保

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值