YmqGino

Cassandra

3 分钟阅读编程技术

Cassandra 技术45讲

总览:全面讲解 Apache Cassandra 分布式 NoSQL 数据库的核心技术,从基本概念到高级特性,再到实际应用和运维,掌握 Cassandra 的设计、开发、管理和优化技能,能够构建高可用、高性能、可扩展的分布式系统

阶段一:Cassandra 基础入门 (约10讲)

  • 第1讲:NoSQL 与 Cassandra 概述

    • NoSQL 数据库的概念、类型和特点 (Key-Value, Document, Column-Family, Graph)
    • CAP 理论、BASE 理论在 NoSQL 中的应用
    • Cassandra 的起源、发展历程、特点与优势
    • Cassandra 的应用场景与适用性分析 (时间序列数据、物联网、社交网络等)
    • Cassandra 与传统关系型数据库 (RDBMS) 的对比
  • 第2讲:Cassandra 架构与核心概念

    • 分布式系统架构 (P2P, 去中心化)
    • Cassandra 的节点 (Node)、数据中心 (Data Center)、集群 (Cluster)
    • Ring 架构、数据分片 (Partitioning) 与路由
    • 副本 (Replication) 策略与一致性级别 (Consistency Level)
    • Gossip 协议与节点发现、集群成员管理
  • 第3讲:Cassandra 安装与配置

    • Cassandra 的下载与安装
    • Cassandra 配置文件 (cassandra.yaml) 详解与常用配置项
    • JVM 配置与性能调优初步
    • 启动、停止、重启 Cassandra 服务
    • 使用 nodetool 命令行工具进行集群管理和监控
  • 第4讲:CQL (Cassandra Query Language) 基础语法

    • CQLShell (cqlsh) 的使用 (连接、执行 CQL 命令、退出)
    • Keyspace 的创建、删除与选择 (CREATE KEYSPACE, DROP KEYSPACE, USE)
    • Table 的创建 (CREATE TABLE) 语法详解 (字段类型、主键、静态列、Clustering Column)
    • Table 的修改 (ALTER TABLE) 语法详解 (添加/删除列、修改列类型、修改属性)
    • Table 的删除 (DROP TABLE, TRUNCATE TABLE)
  • 第5讲:Cassandra 数据类型详解

    • 基本数据类型 (text, varchar, int, bigint, float, double, boolean, uuid, timeuuid, blob)
    • 集合数据类型 (list, set, map)
    • 用户自定义类型 (UDT)
    • 数据类型的选择与最佳实践
  • 第6讲:CQL 数据操作 (CRUD)

    • 插入数据 (INSERT INTO) 语法详解 (单行插入、JSON 格式插入)
    • 查询数据 (SELECT) 语法详解 (WHERE 条件、LIMIT、ORDER BY - 注意 Cassandra 的查询限制)
    • 更新数据 (UPDATE) 语法详解 (SET, WHERE 条件更新)
    • 删除数据 (DELETE) 语法详解 (WHERE 条件删除、删除列)
    • 批量操作 (BATCH) 语句
  • 第7讲:Cassandra 索引 (Indexing)

    • 主键索引 (Primary Key Index) 的原理与特点
    • 二级索引 (Secondary Index) 的类型与使用场景 (Row-level, SASI)
    • 创建、删除二级索引 (CREATE INDEX, DROP INDEX)
    • 索引的选择与性能考量 (避免过度索引)
  • 第8讲:Cassandra 集合 (Collections) 的使用

    • List 集合的特点与应用场景
    • Set 集合的特点与应用场景
    • Map 集合的特点与应用场景
    • 集合的 CRUD 操作与注意事项 (性能影响)
  • 第9讲:Cassandra 轻量级事务 (Lightweight Transactions - LWT)

    • LWT 的概念与应用场景 (实现原子性操作)
    • 使用 IF NOT EXISTSIF 条件进行插入和更新
    • LWT 的实现原理与性能影响
    • 何时使用 LWT,何时避免使用