Redis

Redis 是基于内存的键值数据库,以极高的吞吐与丰富的数据结构成为缓存、会话、排行榜、限流、消息队列等场景的默认选择。

内容导航

章节内容
数据结构与常用命令String/List/Hash/Set/ZSet 及高级结构
持久化RDB、AOF 与混合持久化
缓存模式与分布式锁缓存策略、穿透/击穿/雪崩、分布式锁
主从、哨兵与 Cluster复制、Sentinel、Cluster 与 Go 客户端

核心特点

特点说明
内存存储读写微秒级,单机可达十万级 QPS
丰富结构String、List、Hash、Set、ZSet、Bitmap、HyperLogLog、Stream
单线程命令命令原子执行(6.0+ I/O 多线程,命令仍单线程)
持久化RDB 快照 + AOF 追加日志
高可用复制 + Sentinel + Cluster
Tip

Redis 单线程执行命令意味着一条慢命令会阻塞所有请求。务必避免在生产使用 KEYS *、大集合的 SMEMBERSFLUSHALL 等操作,改用 SCAN 游标迭代。

定位与边界

  • 是缓存,不是主数据库(可作主库,但需谨慎评估持久化与容量)。
  • 数据在内存中,容量受内存限制,成本高于磁盘数据库。
  • 不做复杂查询:没有 SQL、没有多键事务的强一致保证(Cluster 模式下跨槽事务受限)。
Warning

不要把 Redis 当「无限容量」用。必须设置内存上限 maxmemory 与淘汰策略 maxmemory-policy,否则内存打满会导致写入失败甚至 OOM 宕机。