前不久,有一个读者在后台留言,说他面试 Java 开发工程师岗位时,居然大部分的面试问题都是关于 Redis ,他都差点都忘记了自己应聘的是 Java 工程师了。而然这种现象在现在的后端面试中很常见,对 Redis 的掌握已经变成了一项后端工程师必须具备的基础技能了。
当我们翻开那些大厂的招聘要求,你就知道 Redis 真的是一个后端通用技术,俗称通货膨胀下的硬通货。
Redis 作为一个高性能的分布式内存型数据库,被国内外几乎所有的大小型公司所使用,例如 Twitter、Stack Overflow、Github、阿里巴巴、腾讯、新浪微博等,它也早已成为互联网公司的标配,所以对 Redis 的掌握也成为后端工程师必备的基础技能,无论是面试还是实际工作中,我们每时每刻都需要和 Redis 打交道。
Redis 之所以如此流行,是因为它的高效性和简洁性,官方提供的 QPS(Query Per Second,每秒查询率)已经超过 10 万了,以下是官方提供的测试结果图:
其中横轴是连接数,纵轴是 QPS,有兴趣的同学可以去尝试一下 Redis 的基准测试程序。
但是除了高性能之外,Redis 还有一个重要的优点,它的版本更新速度很快,并且功能也越来越强大。比如之前只有 5 种数据类型,而到现在已经有 9 种数据类型。
之前最常用的功能是把它作为缓存数据库,而现在你可以使用它来实现消息队列了。比如之前只能单机模式运行,现在已经发展新增了集群模式运行了;比如之前只能单一模式持久化,选择 RDB 或 AOF,现在已经可以混合持久化模式了,基本实现了鱼和熊掌兼得的境界,特别是集群功能和模块机制的引入,几乎让 Redis 拥有了无限扩展的能力。
这些强大有实用的功能就像一个巨大的宝藏,但对于 90% 的开发者来说,只是掌握了 Redis 最基础的 set 和 get 的方法,这让人感到非常的可惜。
而且 Redis 从 2.x 很快速的升级到 6.x 也只经历了短短的几年,但作为开源的高性能中间件的代表,目前在市面上关于它的核心与实战资料并不多,尤其是新版本的 Redis 实战资料。
所以为了让更多的开发朋友能够深入了解和熟练的使用 Redis,我结合自己使用了 9 年 Redis 经验开发了此专栏,希望这个专栏能够担负起让更多开发者更好的使用 Redis 的光荣使命,能让你们能更快速和全面的掌握 Redis 的实际业务场景运用。
为什么要学这个专栏?
Redis 已经成为程序员必备的基础技能
Redis 从 2009 年发展到现在,已经被国内外几乎全部公司所使用,国内的 BATJ、新浪微博、360、小米;国外的微软、Twitter、Stack Overflow、Github、暴雪等公司都在使用这个技术栈,而且作者从业十余年的那些公司,无一例外也都在使用,所以你想成为一名合格的工程师,Redis 是你必须要具备的基础技能,无论是实际工作中还是竞争激烈的面试中,它对你来说都非常的重要。
大部分人只会用 Redis 的 Key/Value 功能
我身边有很多朋友和同事,尽管已经有 5、6 年的工作经验了,但对于 Redis 的掌握仍处在最初级的阶段,例如,当存储一个用户信息时,只会把 User 对象先序列化成字符串,把字符串再存储到 Redis 中,然后查询的时候先从字符串中取出,再反序列化出来,其实我们完全可以使用 Hash 类型来存储用户信息,这样我们就省去了序列化和反序列化的麻烦,如下图所示:
Redis 还有很多高级功能他们都没有使用到,而这些功能都非常的实用也非常的重要,例如以下这几个:
- 主从复制、Redis Sentinel (哨兵) 和 Redis Cluster (集群);
- 稳定有消息确认 (ACK) 的消息队列 Stream;
- Redis 实现的延迟队列和定时任务;
- 亿万级数据查询、以及亿万级数据的秒去重;
- Redis 慢查询与性能优化;
- Redis 运行原理以及常用数据类型的内部实现。
如果能掌握以上这些技能点,对你开发稳定并高效的程序有着至关重要的作用,同时也能为你成为架构师打好牢固的基础。
专栏特点
图文并茂,轻松易学
本专栏每篇文章都配有大量的图片,如以下这些:
类似这样的图,文章里还有很多,力求让读者们能轻松的看懂所有内容。
环境搭建 + 使用 + 原理 + 代码实战
本专栏里面的所有知识点都是,理论 + 实战的方式,例如主从同步、哨兵、Redis 集群等功能都是先讲它们的搭建、再讲它们的运行原理、再结合 Java 代码完成相关的操作,以这个的方式,力求把每一个知识点都讲透,让用户知其然并知其所以然的同时,还能把每个知识点通过实战的方式串联起来,让读者融会贯通的同时还能学有所用。
涉及了几乎所有的 Redis 核心功能
本专栏几乎包含了 Redis 的所有核心知识点,从单机到集群、从基础数据类型到高级特性、有消息队列还有全文搜索、慢查询、性能调优、还有 Redis 本身一些过期策略、内存淘汰策略的机制和算法等。
最高阶版本新特性
本专栏是结合最新版本 Redis 5.x 开发的,还有一些 Redis 6.x 的预览特性等,Redis 这几年版本的更新很快,从 2.x 到现在的 6.x (预览版) 也只有短短的几年时间,然而这几年 Redis 的功能以及发生了很大的变化,例如 Redis 3 的集群模式、Redis 4 的混合持久化、Redis 5 的可靠消息队列等,都会包含到本系列的专栏中。
专栏内容
基础篇
- Redis 是如何执行的?
- Redis 快速搭建与使用
- 字符串使用与内部实现原理
- 字典使用与内部实现原理
- 列表使用与内部实现原理
- 集合使用与内部实现原理
- 有序集合使用与内部实现原理
- Redis 持久化——RDB
- Redis 持久化——AOF
- Redis 持久化——混合持久化
- Redis 事务深入解析
- Redis 键值过期操作
- Redis 过期策略与源码分析
进阶篇
- Redis 管道技术——Pipeline
- 查询附近的人——GEO
- 优秀的基数统计算法——HyperLogLog
- 游标迭代器(过滤器)——Scan
- 内存淘汰机制与算法
- 消息队列——发布订阅模式
- 消息队列的其他实现方式
- 消息队列终极解决方案——Stream(上)
- 消息队列终极解决方案——Stream(下)
实战篇
- 分布式锁详解与代码实战
- 布隆过滤器安装与使用及原理分析
- 实现延迟队列的两种方法—完整案例
- 定时任务案例实战
- RediSearch 高性能的全文搜索引擎
- Redis 性能测试实战
- Redis 慢查询实战
- Redis 性能优化实战方案
- Redis 主从同步实战
- Redis 哨兵模式实战(上)
- Redis 哨兵模式实战(下)
- Redis 集群模式实战(上)
- Redis 集群模式实战(下)
- Redis 问题汇总和相关解决方案
- 技能学习指南
- 加餐:Redis 的可视化管理工具
扫描下方即可快速获取 9 年经验👇
作者简介
王磊 GitChat 畅销作者、2019 年腾讯云最佳年度作者,十余年编程从业经验,曾就职 360,有着丰富的系统设计、开发和调优的经验,在不断探索和学习的过程中,积累了宝贵的经验,希望以技术传播为使命,帮助更多的人在技术的世界里持续精进。
本专栏是我结合自己近十年使用 Redis 的经验,曾依靠 Redis 为多个大厂,如腾讯游戏、360 游戏、迅雷游戏、多玩、17173、游久等知名公司,提供了数据支持的经验开发了这门专栏。
你能获得什么
• 超越 90% 的开发者掌握 Redis 最核心的功能原理
• 更多贴近业务所需的 Redis 实战应用经验
• 掌握最高阶版 Redis 的特性和执行原理
• 更快速排查 Redis 故障的能力
• 获得 Redis 分布式集群使用经验
适合人群
• 后端工程师
• 面试后端工程师
• 对 Redis 感兴趣的人群
• 在校生/培训班学生
• 自学编程人群
点击链接也可以速速获取👉《Redis 核心原理与实战》
来源:CSDN
作者:GitChat的博客
链接:https://blog.csdn.net/valada/article/details/104572390