Cassandra

#DataBase #NoSQL

Quick Start Only For MacOS

安装

  • 安装 Cassandra (此处采用 homebrew 包管理器进行安装)
brew install cassandra

启动

  1. MacOS 后台启动 Cassandra
brew services start cassandra
  1. 命令行启动 Cassandra
cqlsh

关闭

  1. 命令行关闭 Cassandra
exit	
  1. MacOS 后台关闭 Cassandra
brew services stop cassandra

What is Cassandra?

Cassandra 是:

  • 一种开源、可线性扩展、分布式和容错的 NoSQL 数据库。设计用于处理海量数据。

Main Feature

主要特点:

  • 大规模可扩展架构
  • 无主架构
  • 线性扩展性能
  • 无单点故障
  • 故障节点可轻松恢复
  • 具有灵活、动态的数据模型,可调整的数据一致性,多数据中心复制
  • 数据压缩效率高

Cassandra与传统关系型数据库的主要区别是什么?

  • 传统关系型数据库面向行设计,内部组织结构围绕行的处理,适合 OLTP场景
  • Cassandra 列族数据库面向列设计,主要处理列,适合 OLAP 场景

Cassandra的复制策略?

复制策略是指 Cassandra 如何在集群中复制数据,放置数据副本

如何配置数据的复制和分布?

Cassandra 提供两种复制策略,包括SimpleStrategyNetworkTopologyStrategy

  • SimpleStrategy 用于只有一个数据中心的情况。SimpleStrategy 会在分区器选择的节点上放置第一个副本。之后,其余副本按顺时针方向放置在节点环中
  • NetworkTopologyStrategy 用于有多个数据中心的情况。在网络拓扑策略中,会为每个数据中心分别设置副本。网络拓扑策略在环中按顺时针方向放置副本,直到到达另一个机架中的第一个节点

Cassandra的数据删除是如何工作的?有没有什么需要注意的地方?

  • Cassandra 使用标记删除的方式,而不是立即删除数据。标记删除的数据会在后续的清理过程中删除。
    注意的地方:
  • 如果标记删除的数据过多,会影响查询性能,因为查询时需要扫描和过滤这些标记删除的数据。
  • 需要注意Cassandra表的TTL(生存时间)设置,如果TTL设置不当,可能导致大量的tombstone积累。

Cassandra数据库中使用哪种查询语言?

Cassandra Query Language(CQL)是 Cassandra 数据库的查询语言。

Cassandra的设计目标是什么?

Apache Cassandra 的设计目标主要围绕着可扩展性、高可用性和无单点故障展开。

Cassandra的主要成分是什么?

Cassandra 的主要成分包括:

  • 节点
  • 数据中心
  • 集群
  • 分区器

请描述一个实际应用场景,说明为什么选择使用 Cassandra数据库?

社交媒体的评论管理
Cassandra 面向列设计,适合处理大量数据,适合社交媒体评论管理场景,可以快速写入和读取评论数据,支持高并发读写操作。