首页/数据/NoSQL 速查/一致性模型与常见实现
本包目录(322 条)
MongoDB99 条Elasticsearch89 条ClickHouse56 条时序与列式28 条
选型与架构50 条

一致性模型与常见实现

从强到弱:线性一致、顺序一致、因果一致、读己之写、最终一致。多数 NoSQL 提供可配置的会话或读写级别,让业务在性能一致之间按场景选择。

NoSQL 速查数据更新于 2026-10-12

模型与取舍

模型保证代价
线性一致读到最新已提交写入写入需共识,延迟高
因果一致因果相关的操作顺序可见实现复杂,跨分区成本
读己之写同一会话看到自己的写入会话粘滞或令牌传递
最终一致停止写入后副本收敛旧读窗口,需业务容错

示例

示例
// MongoDB:写多数派 + 读多数派
await db.orders.insertOne(
  { _id: 1, status: "created" },
  { writeConcern: { w: "majority" } }
);
db.orders.find({ _id: 1 }).readConcern("majority");

# Elasticsearch:写入后立即按 ID 读取是实时的,但搜索要等 refresh
GET /orders/_doc/1
GET /orders/_search
业务侧常见折中:写用多数派保证不丢,读按场景分:详情页读主库节点,列表页可接受秒级旧读。

易错点

  • 把"读己之写"当成系统级默认保证:换节点或换连接池后可能失效
  • 最终一致窗口内做二次判断(如同单重复提交校验)会得到错误结论,幂等键要独立设计

数据来源与参考

  • MongoDB Manual: Consistency and availability
  • Elasticsearch Guide: Reading and writing documents
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌