作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL
Redis(本章节)
Etcd
我们在前面介绍MongoDB的时候,介绍过一个纯内存的存储引擎,而我们今天讲的另外一个数据库:Redis,他天生就是内存数据库,数据默认都是存储在内存里面。
Redis(Remote Dictionary Server)是一个开源的、内存中的键值存储系统,常用作数据库、缓存和消息中间件。它由 Salvatore Sanfilippo 用 C 语言开发,以其极高的性能和丰富的数据结构而闻名。
与传统的磁盘存储数据库不同,Redis 将数据主要存储在内存中,同时支持持久化到磁盘,这使得它在读写性能上具有显著优势。
为了更好地理解 Redis,我们将其与传统的关系型数据库(如 MySQL)进行对比:
RDBMS (MySQL) | Redis | 说明 |
|---|---|---|
数据库 Database | 数据库 Database | Redis 支持多个逻辑数据库(0-15),默认使用 0 号数据库 |
表 Table | 键空间 Key Space | Redis 没有"表"的概念,所有数据通过键来组织 |
行 Row | 键值对 Key-Value | Redis 中的基本数据单元是一个键值对 |
列 Column | 字段 Field(在哈希中) | 仅在 Redis 的哈希数据结构中有类似概念 |
主键 Primary Key | 键 Key | Redis 的键是唯一的,通过键直接访问值 |
表联接 Joins | 不支持联接 | Redis 不支持表连接,需要通过设计键结构来关联数据 |
SQL 查询 | 命令 Command | 使用特定的命令操作数据,如 GET、SET、HGET 等 |
1. 内存存储(In-Memory)
2. 丰富的数据结构:Redis 不仅仅是简单的键值存储,它支持多种数据结构:String、Hash、List、Set、Sorted Set、BitMap、HyperLogLog、Geo。
3. 原子操作
4. 持久化机制
5. 高可用与分布式
6. 发布/订阅(Pub/Sub)
7. 过期策略
特性 | 性能表现 | 说明 |
|---|---|---|
读取速度 | 约 100,000 次/秒 | 内存读取,无磁盘 I/O 瓶颈 |
写入速度 | 约 80,000 次/秒 | 内存写入,支持异步持久化 |
并发连接 | 支持数万连接 | 单线程模型,避免上下文切换 |
延迟 | 亚毫秒级 | 大部分操作在 1ms 内完成 |