news 2026/4/18 9:59:52

Redis是AP的还是CP?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis是AP的还是CP?

通义千问:
这个问题其实是在问 Redis 在 CAP 理论中的定位,即它更偏向于 AP(可用性 + 分区容忍性) 还是 CP(一致性 + 分区容忍性)。要理解这个问题,我们先快速回顾一下 CAP 理论。

🔹 什么是 CAP 理论?

CAP 理论指出,在一个 分布式系统 中,以下三个特性 最多只能同时满足两个:

  • C(Consistency)一致性:所有节点在同一时间看到的数据是一致的。
  • A(Availability)可用性:每个请求都能收到响应(不保证是最新的数据)。
  • P(Partition Tolerance)分区容忍性:即使网络出现分区(部分节点之间通信中断),系统仍能继续运行。

💡 实际上,P(分区容忍性)在现代分布式系统中是必须满足的,所以系统通常是在 CP 和 AP 之间做权衡。

🔹 Redis 是 AP 还是 CP?

答案:Redis 本质上是一个 AP 系统(高可用 + 分区容忍),但可以通过配置临时实现部分 CP 行为。

✅ 默认情况下:Redis 是 AP

  • 主从复制是异步的:主节点写入后立即返回成功,从节点稍后才复制数据。这意味着:
    • 如果主节点宕机,未同步的数据会丢失。
    • 读从节点可能读到旧数据(不一致)。
  • 哨兵(Sentinel)和集群(Cluster)优先保证可用性:
    • 主节点挂了,自动选新主,服务不中断。
    • 但可能牺牲一致性(比如丢失最后几毫秒的写入)。
  • Redis Cluster 使用最终一致性模型,不要求强一致。

📌 所以,在分布式部署下(如 Sentinel 或 Cluster 模式),Redis 是典型的 AP 系统。

⚠️ 特殊情况下:可以“模拟” CP
虽然 Redis 默认是 AP,但你可以通过一些手段 临时提升一致性,代价是降低可用性:

  1. 使用 WAIT 命令:
SET key value WAIT11000# 等待至少1个从节点同步,超时1秒
  • 这会让写操作阻塞,直到数据同步完成。
  • 类似“同步复制”,接近强一致性。
  • 但如果从节点不可用或网络分区,请求会超时 → 牺牲了可用性(A)。
  1. 集群配置 cluster-require-full-coverage yes:
    • 默认是 no,允许部分节点失效时继续提供服务(AP)。
    • 设为 yes 后,只要有一个哈希槽不可用,整个集群拒绝写入 → 偏向 CP。
    • 但生产环境几乎不用,因为太影响可用性。

🔹 不同 Redis 部署模式下的 CAP 表现
部署模式 CAP 定位 说明
单机 Redis CA(无 P) 不是分布式系统,不适用 CAP

主从复制(异步) AP 高可用,但可能不一致

哨兵(Sentinel) AP 自动故障转移,优先可用性

集群(Cluster) AP(最终一致) 数据分片 + 高可用,不保证强一致

❗ 注意:CAP 理论只适用于分布式系统。单机 Redis 谈不上 AP/CP。

🔹 总结

  • Redis 的设计目标是高性能、高可用,因此 默认选择 AP。
  • 它 不保证强一致性,而是采用 最终一致性。
  • 如果你的业务需要强一致性(如分布式锁、金融交易),不要依赖 Redis 默认行为,应结合 WAIT、Redlock 算法,或改用 CP 系统(如 ZooKeeper、etcd)。

✅ 简单记:Redis 是 AP 系统,适合缓存、会话、排行榜等可容忍短暂不一致的场景。

如有具体使用场景(比如你用的是 Sentinel 还是 Cluster),我可以给出更针对性的建议!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:17:53

深度学习毕设项目:基于CNN的手势识别技术研究与游戏应用实现

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/17 23:17:58

构建GLM-TTS开发者文档中心:提高接入效率

构建GLM-TTS开发者文档中心:提高接入效率 在语音交互日益普及的今天,从智能客服到有声读物,再到虚拟主播和教育辅助系统,高质量的文本转语音(TTS)能力正成为产品体验的核心竞争力。然而,即便模型…

作者头像 李华
网站建设 2026/4/18 8:49:52

想做数码产品出口的宝子们,看过来!

无线充电宝出口欧美必备认证清单,外贸人必看!想把手里的无线充电宝卖到欧美市场?这些认证一个都不能少!赶紧码住,避免踩坑!一、出口美国必备认证1、FCC ID 认证无线充电宝在美国被视为带无线发射功能的产品…

作者头像 李华
网站建设 2026/4/16 16:19:32

使用Begin.com快速部署GLM-TTS无服务器架构

使用 Begin.com 快速部署 GLM-TTS 无服务器架构 在语音合成技术正从“能说”迈向“像人”的今天,如何以最低成本、最快速度将高质量 TTS 模型投入实际应用,成为开发者关注的核心问题。传统部署方式往往受限于 GPU 资源获取难、环境配置复杂、运维负担重…

作者头像 李华
网站建设 2026/4/13 18:52:45

GLM-TTS在智能客服中的应用潜力分析

GLM-TTS在智能客服中的应用潜力分析 你有没有接过这样的电话?“您好,您的订单已发货。”——声音机械、语调平直,像从某个老旧IVR系统里蹦出来的。用户听着不舒服,企业也难建立品牌温度。而在今天,AI语音技术正在悄然改…

作者头像 李华
网站建设 2026/4/13 22:06:07

SpringBoot里Servlet原生Request对象:注入使用+子线程避坑指南

在SpringBoot做Web开发时,HttpServletRequest、HttpServletResponse这些Servlet原生对象绝对是高频工具——毕竟处理HTTP请求全靠它们。这些对象都跟单次请求绑在一起,用起来不算复杂,但在子线程、异步场景下容易踩坑。 一、Servlet原生Reque…

作者头像 李华