Logo
Section 1 / 5

一致性

探索 Apache Cassandra 中的可调一致性(Tunable Consistency)概念,该特性允许用户为读写操作选择合适的一致性级别,以在数据一致性、可用性和性能之间取得平衡。

导入

一致性

探索 Apache Cassandra 中的可调一致性(Tunable Consistency)概念,该特性允许用户为读写操作选择合适的一致性级别,以在数据一致性、可用性和性能之间取得平衡。

...
读取一致性级别 - 成功读取操作所需的副本数量
...
写入一致性级别 - 成功写入操作所需等待确认的副本数量

以下语句用于显示 CONSISTENCY 命令的帮助信息:

1// 显示 consistency 命令的帮助信息 2help CONSISTENCY
...
“help CONSISTENCY” 命令

可以在当前的 cqlsh 会话中,使用 CONSISTENCY 关键字后跟期望的一致性级别来设置所有读写查询的一致性级别。

1// 设置未来语句的一致性级别 2CONSISTENCY <consistency_level>;

例如,要将一致性级别设置为 QUORUM,可以执行以下语句:

1// 将 QUORUM 设置为未来语句的一致性级别 2CONSISTENCY QUORUM;

如果未指定一致性级别,CONSISTENCY 命令将显示当前 cqlsh 会话的一致性级别。ONE 是 cqlsh 的默认一致性级别。

1// 显示当前一致性级别 2CONSISTENCY;
1nodetool status 2 3cqlsh 127.0.0.1 4 5-- 创建名为 VideoCourses 的 keyspace 6CREATE KEYSPACE IF NOT EXISTS VideoCourses WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 2}; 7 8USE videoCoURSES; // 注意 keyspace 名称不区分大小写 9 10CREATE TABLE IF NOT EXISTS courses_by_category 11( 12 title text, 13 category text, 14 target_audience text, 15 instructor text, 16 PRIMARY KEY((category), title, instructor) 17); 18-- 向 courses_by_category 表中插入 3 条记录 19INSERT INTO courses_by_category( category, title, instructor, target_audience)VALUES ('Cassandra', 'Cassandra Fundamentals','DataJek', 'Beginner'); 20INSERT INTO courses_by_category( category, title, instructor, target_audience)VALUES ('Cassandra','CQL', 'Bob', 'Advanced'); 21INSERT INTO courses_by_category( category, title, instructor, target_audience)VALUES ('Cassandra', 'Cassandra Architecture','DataJek', 'Intermediate'); 22 23SELECT * FROM courses_by_category WHERE category = 'Cassandra'; 24 25-- ---------------------CONSISTENCY ---------------------- 26-- 显示 CONSISTENCY 命令的详细信息和语法 27help CONSISTENCY 28 29-- 显示当前一致性级别 30CONSISTENCY; 31 32-- 将一致性级别设置为 QUORUM 33CONSISTENCY QUORUM; 34exit; 35 36nodetool getendpoints videocourses courses_by_category 'Cassandra'
Terminal

Apache Cassandra 数据类型

一致性级别:ALL、EACH_QUORUM、QUORUM 和 LOCAL_QUORUM