Skip to main content

5. Cassandra

什么是 Cassandra?

Apache Cassandra 是一个分布式 NoSQL 数据库,适用于高可用性和水平扩展的场景,广泛用于大数据存储。

info

Cassandra 采用去中心化架构,支持高吞吐量和无单点故障的分布式存储。

Cassandra 数据结构

Cassandra 采用 键空间(Keyspace) 作为数据库的最顶层单位,表(Table) 作为存储单元,行(Row) 作为数据项。

CREATE KEYSPACE my_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
USE my_keyspace;

CREATE TABLE users (
id UUID PRIMARY KEY,
name TEXT,
age INT,
email TEXT
);

Cassandra 基本操作

-- 插入数据
INSERT INTO users (id, name, age, email) VALUES (uuid(), 'Alice', 30, 'alice@example.com');

-- 查询数据
SELECT * FROM users WHERE age > 25;

-- 更新数据
UPDATE users SET age = 31 WHERE id = 1234abcd-56ef-78gh-90ij-klmnopqrstuv;

-- 删除数据
DELETE FROM users WHERE id = 1234abcd-56ef-78gh-90ij-klmnopqrstuv;

索引与优化

-- 创建索引,提高查询效率
CREATE INDEX ON users (email);

-- 使用批量插入,提高写入性能
BEGIN BATCH
INSERT INTO users (id, name, age, email) VALUES (uuid(), 'Bob', 25, 'bob@example.com');
INSERT INTO users (id, name, age, email) VALUES (uuid(), 'Charlie', 28, 'charlie@example.com');
APPLY BATCH;

事务管理与一致性

使用 Lightweight Transactions (LWT) 保证一致性
-- 确保只有在 email 不存在的情况下才插入数据
INSERT INTO users (id, name, age, email) VALUES (uuid(), 'David', 27, 'david@example.com')
IF NOT EXISTS;

结论

Cassandra 是一个强大的分布式数据库,适用于大规模数据存储和高吞吐量应用。通过使用 CQL 和适当的优化策略,可以提升数据管理效率。

更多 Cassandra 资源