分布式环境中,redis作为必不可少的中间件,我们都常有用到,但是我们大多数人基本都没有系统学习过,只是跟着潮流把redis当作一个缓存来用,或者用它来实现分布式锁、分布式自增键。而本章内容还继续讲这些就没有任何意义,因为这些东西都已经讲烂了,百度的资料都一大堆。本章我们回归初心,整理redis几种数据类型,以及列举应用场景。你会重新认识到redis的强大,而不是仅次于缓存。

先总结现在redis支持的几种数据类型,在开发中,相信都已经用过了string, set, list, zset, hash,这些数据结构。但是在官网中还有找到其他的一些数据结构,如hyperloglogs, geospatial,以及在5.0后出了一个streams,在这个数据结构出来之后,基本上redis的重心在往一个消息中间件偏移,所以你把redis当作一个缓存,是非常片面的。

本章对redis的几大基本类型进行罗列,以及各自应用场景,后来发现篇幅实在太大,得以拆分,大家可根据自身进行查略。

string

回顾string经典场景,以及对这些场景延申的一些思考。点击查看

  1. 缓存(如何设计缓存存储,使用spring cache另当别论)
  2. 分布式锁(锁续期)
  3. 计数器
  4. 分布式全局序列(减少IO交互提高效率)

hash

试图揣测redis官方推出hash的意义,以及实现原理。点击查看

list

点击查看

  1. 基于list实现消息队列
  2. 新浪/twitter用户消息列表

set

点击查看

  1. 抽奖活动
  2. 点赞、签到
  3. 好友关注模型
  4. 电商商品筛选
  5. 大数据量对账

zset

点击查看

  1. 统计运算
  2. 热点新闻排行榜

总结

在本章中,其实所回顾的都是基础,没有过深的技术难点,但是它却解决了,互联网中比较难实现的场景。例如新浪消息列表、抽奖、好友关注模型、大数据对账、大数据排序等…这些功能在不依赖redis的时候,实现起来有多困难。而这些都是redis的基础知识。

其实我只是想说,回归初心脚踏实地巩固基础真的很重要。