前言
授人以鱼不若授人以渔—— Redis 可以用来做什么?
Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、 简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。国内外很多大型互联网 公司都在使用 Redis,比如 Twitter、YouPorn、暴雪娱乐、Github、StackOverflow、腾讯、 阿里、京东、华为、新浪微博等等,很多中小型公司也都有应用。也可以说,对 Redis 的了解和应用实践已成为当下中高级后端开发者绕不开的必备技能。
小册的内容范围
本小册主要讲解从日常实战中摸索总结的 Redis 最常用最核心知识点,但限于篇幅和精力,并没有涵盖 Redis 全部的内容知识点,比如 Redis 内置的 lua 脚本引擎就完全没有提到。之所以不讲,是因为在平时的工作中确实从来没有使用过,它就好比关系数据库的存储 过程,虽然功能很强大,但是确实很少使用,而且也不易维护,所以就不推荐大家使用了。
Redis 可以做什么?
Redis 的业务应用范围非常广泛,简单梳理一下,Redis 可以用在哪些地方?
1、记录帖子的点赞数、评论数和点击数 (hash)。
2、记录用户的帖子 ID 列表 (排序),便于快速显示用户的帖子列表 (zset)。
3、记录帖子的标题、摘要、作者和封面信息,用于列表页展示 (hash)。
4、记录帖子的点赞用户 ID 列表,评论 ID 列表,用于显示和去重计数 (zset)。
5、缓存近期热帖内容 (帖子内容空间占用比较大),减少数据库压力 (hash)。
6、记录帖子的相关文章 ID,根据内容推荐相关帖子 (list)。
7、如果帖子 ID 是整数自增的,可以使用 Redis 来分配帖子 ID(计数器)。
8、收藏集和帖子之间的关系 (zset)。
9、记录热榜帖子 ID 列表,总热榜和分类热榜 (zset)。
10、缓存用户行为历史,进行恶意行为过滤 (zset,hash)。
当然,实际情况下需求可能也没这么多,因为在请求压力不大的情况下,很多数据都是 可以直接从数据库中查询的。但请求压力一大,以前通过数据库直接存取的数据则必须要挪 到缓存里来。
目录展示
内容节选 (部分展示)
基础:万丈高楼平地起 ——Redis 基础数据结构
应用 4:四两拨千斤 —— HyperLogLog
应用 7:一毛不拔 —— 漏斗限流
应用 9:大海捞针 —— Scan
原理 4:雷厉风行 —— 管道
原理 6:小道消息 —— PubSub
拓展 9:隔墙有耳 —— Redis 安全通信