Redis 的业务应用范围非常广泛,让我们以掘金技术社区(juejin.im)的帖子模块为实例,梳理一下,Redis 可以用在哪些地方?
- 记录帖子的点赞数、评论数和点击数 (hash)。
- 记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。
- 记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。
- 记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。
- 缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。
- 记录帖子的相关文章 ID,根据内容推荐相关帖子 (list)。
- 如果帖子 ID 是整数自增的,可以使用 Redis 来分配帖子 ID(计数器)。
- 收藏集和帖子之间的关系 (zset)。
- 记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。
- 缓存用户行为历史,进行恶意行为过滤 (zset,hash)。
当然,实际情况下需求可能也没这么多,因为在请求压力不大的情况下,很多数据都是可以直接从数据库中查询的。但请求压力一大,以前通过数据库直接存取的数据则必须要挪到缓存里来。
以上提到的只是 Redis 的基础应用,也是日常开发中最常见的应用(如果你的 Redis 基础和经验不足,可能需要阅读完下一节之后才能回过头来思考这个问题)。除了基础应用之外,还有很多其它的 Redis 高级应用,大多数同学可能从未接触过,这部分我会在后续的章节中陆续讲解。
小结
接下来,我们将过一遍 Redis 的基础知识,这部分内容估计本小册大多数读者都已经非常了解,所以这里也不浪费太多笔墨,只计划用一节的篇幅快速讲完。如果读者对 Redis 基础数据结构已经了然于胸,可以直接跳到下一章节阅读 Redis 的高级知识。
另外在阅读小册过程中,如果你被某些章节卡住了,一下理解不了,可以先淡定的摸着胸口告诉自己“不要慌,一切都是正常的!”,然后临时跳过并继续阅读后面的章节。但请各位读者务必坚持到最后,相信你会明显感受到技术能力的升华。大家加油!