Redis核心特性

1.内存模型与性能特征

  • 内存数据库(In-Memory)

    • 数据主要存储在内存 → 微秒级访问延迟
    • 支持持久化(RDB / AOF)保证数据不丢失
  • 单线程事件驱动(Reactor模型)

    • 核心执行单线程(避免锁竞争)
    • I/O 多路复用(epoll/kqueue)
  • 高吞吐

    • 单机 QPS 可达 10w+(取决于网络与命令复杂度)

2.数据结构

Redis ≠ KV数据库,而是 Data Structure Server

类型 结构 应用场景
String 字符串/二进制 缓存、计数器
List 双向链表 队列、消息队列
Hash 哈希表 用户属性
Set 无序集合 去重、标签
ZSet 有序集合 排行榜
Bitmap 位图 活跃统计
HyperLogLog 基数统计 UV
Stream 消息队列(增强版)

3.高可用与扩展能力

  • 主从复制(Replication)

  • 哨兵(Sentinel)自动故障转移

  • 集群(Cluster)

    • 分片(16384 slots)
    • 横向扩展

4.持久化机制

  • RDB(快照)

    • 周期性 dump
    • 恢复快
  • AOF(日志)

    • 追加写日志
    • 数据更安全

5.其他高级特性

  • 过期策略(TTL / LRU / LFU)
  • Lua脚本(原子执行)
  • Pipeline(批量请求)
  • GEO空间索引
  • ACL权限控制(Redis 6+)

6. 消息订阅与发布(Pub/Sub)

Redis 提供轻量级消息通信机制:

flowchart LR
    P[Publisher] -->|PUBLISH channel msg| R[(Redis)]
    R -->|推送| S1[Subscriber A]
    R -->|推送| S2[Subscriber B]

核心命令

命令 说明
PUBLISH channel msg 发布消息
SUBSCRIBE channel 订阅频道
PSUBSCRIBE pattern 模式订阅

7.与 Stream 的对比

维度 Pub/Sub Stream
持久化
ACK
消费组
重放

👉 结论:

  • Pub/Sub → 实时广播
  • Stream → 专业消息队列

8. redis架构理解

graph TD
    A[Redis] --> B[数据结构引擎]
    A --> C[缓存系统]
    A --> D[消息系统]

    D --> D1[Pub/Sub 实时广播]
    D --> D2[Stream 消息队列]

    A --> E[事务机制]
    E --> E1[MULTI/EXEC]
    E --> E2[WATCH 乐观锁]