字符串的应用场景:封锁一个IP地址
创建SpringBoot后台服务程序,实现用户登录及JWT认证;
通过Redis缓存限制在1分钟内同一IP请求登录不能超过5次。
登录实现类增加Redis计数判断
Hash的应用场景:存储用户信息
- 创建php后台服务程序,实现微信小程序登录及JWT认证;
- 通过Redis缓存记录该用户最后一次登录时间及登录累计次数。
- 将当前用户信息与登录时间写入Redis缓存的哈希表
- 以微信登录用户的openId作为哈希键值
- 读取缓存中当前哈希值对应的用户的登录次数
- 累加后回写到哈希表中
List的应用场景:队列实现
创建php上传文件WebApi服务接口;
通过Redis缓存队列记录最新10笔用户上传文件的信息。
Set的应用场景:自动去重
创建php添加客户信息服务接口;
通过Redis集合缓存客户信息,要求自动去重,不得重复记录。
社交场景下
- 排行榜
- 计数器:浏览量等
- 作主库:如点赞数据可以先把数据缓存下来,当数据库不忙的时候进行倒入数据
- 缓存个人信息基本数据,推荐流话题
电商场景下
- 商品很多属性:标题,价格,等
- 商品的计数器:点赞,收藏
- 热门商品的排行榜
- 购物车属于读多写多场景(暂时数据)之后也要删除
- 库存减扣问题当并发不大情况下可以用数据的悲观锁,单数据量大的时候如秒杀还用数据锁就会出现性能瓶颈问题,所以可以使用redis 队列的形式
返回 redis 系列