Skip to main content
☘️ Septvean's Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Redis 核心概念

一、Redis 是什么?

Redis 是一个基于内存的 Key-Value 数据结构存储系统,支持持久化、主从复制和集群。

核心特征

  • 内存存储(极快)
  • 单线程模型(命令执行)
  • 多数据结构
  • 可持久化
  • 支持分布式

二、Redis 的核心设计理念(必会)

1️⃣ 单线程模型(但不是“只能用一个 CPU”)

Redis 用单线程处理命令,避免锁,提高可预测性能。

原理

  • 单线程执行命令
  • I/O 多路复用(epoll / kqueue)
  • Redis 6+ 引入 I/O 多线程

📌 优点:

  • 无锁
  • 高性能
  • 逻辑简单

📌 缺点:

  • 单个实例有 CPU 上限

2️⃣ 内存模型(为什么快)

  • 所有数据在内存
  • 顺序执行
  • 极少系统调用
  • 简单数据结构

三、Redis 的数据结构(非常重要)

Redis 的 value 是 “对象”,不是简单字符串。

1️⃣ 五大基础类型

类型 说明 使用场景
String 字符串 / 数值 缓存、计数器
Hash 字段-值 对象存储
List 双端链表 消息队列
Set 无序集合 去重
ZSet 有序集合 排行榜

2️⃣ 底层数据结构(加分项)

Redis 类型 底层实现
String SDS
Hash ziplist / hashtable
List quicklist
Set intset / hashtable
ZSet skiplist + dict

四、Redis 的 Key 设计原则

规范

业务:模块:对象:{id}

示例:

user:profile:{1001}
order:info:{2001}

Cluster 专用

  • {} Hash Tag 保证同槽

五、过期策略(基础但重要)

1️⃣ 三种删除方式

  • 定期删除
  • 惰性删除(主)
  • 定期 + 惰性(实际)

2️⃣ 内存淘汰策略

maxmemory-policy allkeys-lru

常见策略:

  • allkeys-lru
  • volatile-lru
  • noeviction

六、持久化机制(理论必会)

1️⃣ RDB

  • 内存快照
  • fork 子进程
  • 恢复快

2️⃣ AOF

  • 记录写命令
  • 数据完整
  • 文件大

3️⃣ 混合持久化

  • RDB + AOF(生产推荐)

七、复制与高可用

1️⃣ 主从复制

  • 异步复制
  • 全量 + 增量

2️⃣ Sentinel

  • 监控
  • 自动故障转移
  • 选主

3️⃣ Cluster

  • 16384 slots
  • 无中心
  • 自动分片

八、事务 & Lua(经常被忽略)

1️⃣ 事务

  • MULTI / EXEC
  • 不支持回滚
  • 保证顺序

2️⃣ Lua

  • 原子执行
  • 不能阻塞
  • Cluster 有限制

九、Redis 的典型应用场景

  • 缓存
  • 分布式锁
  • 计数器
  • 延迟队列
  • 排行榜
  • 会话存储

十、Redis 的核心限制(必须知道)

限制 说明
单线程 CPU 有上限
内存 不是无限
Cluster 只有 DB 0
强一致性 不保证

十一、总结

Redis 是一个基于内存的高性能 Key-Value 存储系统,采用单线程模型和 I/O 多路复用,支持多种数据结构、持久化、高可用和分布式集群,常用于缓存和高并发场景。