全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-12 6 分钟 ✍️ juanwangdev

Redis 核心特点

Redis的核心特点使其成为最受欢迎的内存数据库之一,理解这些特点是正确使用Redis的基础。

高性能

内存存储

Bash
- 数据存储在内存中
- 读写速度极快
- 单机可达10万+ QPS
- 响应时间微秒级

单线程模型

Bash
Redis主线程是单线程的:
- 避免多线程竞争开销
- 无锁操作,效率高
- 纯内存操作,速度快

单线程不意味着性能差,内存操作本身就是微秒级。

IO多路复用

Bash
使用epoll/kqueue实现:
- 单线程处理多个连接
- 非阻塞IO
- 高并发处理能力

为什么单线程高效

Bash
1. 纯内存操作:CPU不是瓶颈
2. 避免锁竞争:无需加锁开销
3. IO多路复用:高效处理连接
4. 简单可靠:无并发Bug

丰富数据结构

五种基本类型

text
String(字符串):最基本类型,存储文本、数字
Hash(哈希):键值对集合,适合对象
List(列表):有序可重复,双向链表
Set(集合):无序不重复,支持交集运算
ZSet(有序集合):带分数排序,适合排行榜

高级数据结构

text
Bitmap(位图):位操作,适合统计
HyperLogLog:基数统计,节省空间
Geo(地理):地理位置,距离计算
Stream(流):消息队列,支持消费组

数据结构优势

text
- 原生支持,无需应用层实现
- 高效内部编码,节省内存
- 丰富的操作命令
- 支持复杂业务场景

持久化能力

RDB快照

text
特点:
- 定时保存内存快照
- 文件紧凑,适合备份
- 恢复速度快
- 可能丢失最后一次快照后的数据

AOF日志

text
特点:
- 记录所有写命令
- 数据安全,最多丢失1秒
- 文件可读,便于分析
- 支持重写压缩

混合持久化

text
Redis 4.0+支持:
- RDB快照 + AOF增量
- 结合两者优点
- 推荐生产使用

高可用与分布式

主从复制

text
- 一主多从架构
- 实时数据同步
- 从节点可读
- 故障转移基础

哨兵模式

text
- 监控主从状态
- 自动故障检测
- 自动故障转移
- 配置中心功能

Redis Cluster

text
- 分布式集群
- 数据自动分片
- 无中心架构
- 自动故障转移
- 支持在线扩缩容

支持事务

事务命令

text
# 开启事务
MULTI

# 命令入队
SET key1 value1
SET key2 value2

# 执行事务
EXEC

# 取消事务
DISCARD

事务特点

text
- 命令批量执行
- 保证原子性(无其他命令插入)
- 不支持回滚(某命令失败不影响其他)

Redis事务不保证全部成功或失败,命令错误不影响其他命令执行。

发布订阅

消息模式

text
# 发布消息
PUBLISH channel message

# 订阅频道
SUBSCRIBE channel

# 模式订阅
PSUBSCRIBE channel*

# 取消订阅
UNSUBSCRIBE channel

应用场景

text
- 消息推送
- 实时通知
- 事件广播
- 简单消息队列

Lua脚本

脚本执行

text
# 执行Lua脚本
EVAL "return redis.call('GET', KEYS[1])" 1 mykey

# 加载脚本
SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"

# 执行已加载脚本
EVALSHA sha1 1 key value

脚本优势

text
- 原子执行:多条命令不可打断
- 减少网络开销:一次发送多条命令
- 复杂逻辑:条件判断、循环

内存优化

内部编码

text
String:int, embstr, raw
Hash:ziplist, hashtable
List:ziplist, linkedlist, quicklist
Set:intset, hashtable
ZSet:ziplist, skiplist

自动编码转换

text
Redis根据数据自动选择编码:
- 小数据用紧凑编码(ziplist)
- 大数据用标准编码(hashtable)
- 用户无需关心编码细节

支持过期

过期设置

text
# 设置过期时间
EXPIRE key 3600  # 3600秒后过期

# 查看剩余时间
TTL key

# 移除过期
PERSIST key

过期策略

text
惰性删除:访问时检查并删除
定期删除:周期性随机检查删除
内存淘汰:内存满时按策略淘汰

特点对比

特点说明优势
高性能内存+单线程+IO多路复用10万+QPS
丰富结构5种基础+4种高级适配多种场景
持久化RDB+AOF+混合数据安全
分布式Cluster集群水平扩展
事务MULTI/EXEC批量原子
Lua脚本执行复原子操作

要点总结

  • 高性能源于内存存储、单线程模型、IO多路复用
  • 支持5种基础+4种高级数据结构,适配多种场景
  • RDB快照+AOF日志保障数据安全,推荐混合持久化
  • 主从复制+哨兵+Cluster实现高可用和分布式
  • 事务保证命令批量执行,但不支持回滚
  • Lua脚本实现复杂原子操作
  • 自动编码优化内存使用,用户无需关心细节
  • 过期机制自动清理数据,支持多种淘汰策略

📝 发现内容有误?点击此处直接编辑

← 上一篇 Redis集合
下一篇 → Redis 简介与安装
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库