Redis 简介与历史

在动手安装之前,我们先弄清楚 Redis 到底是什么、为什么会诞生、凭什么这么快。理解了它的设计哲学,后面学命令、学持久化、学场景时会事半功倍。

什么是 Redis

Redis(Remote Dictionary Server,远程字典服务)是开源的内存数据结构存储系统。它的核心特征只有一句话:所有数据放在内存里,读写都直接操作内存,完全不碰硬盘(除了可选的持久化)。

这一句特征带来的直接后果就是——。传统数据库(MySQL、PostgreSQL)每次读写都要走硬盘 I/O,单实例每秒几千到几万次请求就到瓶颈;而 Redis 单实例每秒能轻松处理 10 万级请求,延迟通常在亚毫秒级。这就是它成为现代后端"提速"首选的根本原因。

# Redis 命令在线试用(redis-cli 内)
127.0.0.1:6379> SET greeting "hello"
OK
127.0.0.1:6379> GET greeting
"hello"
# 1 秒内可以执行十万次以上这样的命令

诞生故事:从"救火"到明星项目

Redis 的作者是意大利工程师 Salvatore Sanfilippo,网名 antirez。2009 年,他在自己的创业公司做一款实时分析产品,原本用 MySQL 存储实时统计数据,但面对高并发写入和频繁的"按时间窗口筛选"操作,MySQL 撑不住。

他先用 Memcached 缓解,但 Memcached 只能存纯字符串、不能做计数自增、不能按模式批量管理 key——满足不了业务需求。于是他干脆自己写了一个,起名 Redis。开源后迅速火爆,成为 GitHub 上最早一批破万 star 的项目。后来 antirez 全职维护 Redis 长达十年,2018 年起逐渐交棒给 Redis Labs(现 Redis Inc.),自己回归独立开发者身份。

今天 Redis 已是事实标准:GitHub、Stack Overflow、Twitter、Instagram、阿里巴巴、字节跳动——几乎所有"用户量巨大"的互联网产品都在用。它的官网 redis.io 文档极其完善,每条命令都能在线试用。

Redis 为什么这么快

"内存存储"只是其中一个原因,Redis 的快是多重设计叠加的结果:

一句话总结:把"快"做到了极致——内存 + 单线程 + 多路复用 + 高效数据结构,四者缺一不可。

Redis vs 其他数据库

+-----------+----------+------------+----------+
|   存储     |  速度    |  数据模型  |  典型用法 |
+-----------+----------+------------+----------+
| MySQL     | 慢(硬盘) | 关系表     | 主数据库  |
| MongoDB   | 中       | 文档 JSON  | 主数据库  |
| Redis     | 极快(内存)| key-value  | 缓存/辅助 |
| Memcached | 极快(内存)| 纯字符串   | 纯缓存    |
+-----------+----------+------------+----------+
# Redis 既能当缓存,又能做队列、排行榜、会话——
# 这是它比 Memcached 受欢迎的根本原因。

需要特别强调:Redis 通常不做主数据库。它的角色是"加速器"和"辅助存储"——存那些访问频繁、可以重建、需要极速响应的数据。主数据仍放在 MySQL/MongoDB,Redis 配合使用。原因有两个:内存贵(同等容量比硬盘贵几十倍),以及 Redis 的关系查询能力弱(没有 JOIN)。

Redis 不只是"缓存"

很多人把 Redis 等同于"缓存",这是误解。Redis 内置了多种数据结构,每种都配了一批专用命令,所以它能胜任远超缓存的场景:

正因为这种"瑞士军刀"特性,后端工程师几乎每天都会和 Redis 打交道。学透 Redis,是后端工程师进阶的必经之路。

它能"持久化"吗?

很多人有疑问:既然数据在内存,断电不就全没了?Redis 提供了两种持久化机制(可单独开,也可同时开):

还有主从复制(master-slave)、哨兵(Sentinel)自动故障转移、集群(Cluster)分片——撑住生产级高可用。这些我们后面有专门章节讲。

该不该学 Redis?

如果你的方向是后端开发、运维、DevOps、基础架构,Redis 几乎是必修课——后端面试的高频题、生产系统的常见组件、性能优化的重要工具。学完本系列,你将能独立设计一个带缓存的 Web 服务、用 Redis 做排行榜和消息队列、看懂生产环境的持久化配置。

← 返回 Redis 教程目录

下一篇 Redis 环境安装与 redis-cli

✈️💬