date: 2024-07-01
title: Cassandra
status: DONE
author:
- AllenYGY
tags:
- NOTE
- DataBase
publish: True
Cassandra
Quick Start Only For MacOS
安装
- 安装 Cassandra (此处采用
homebrew
包管理器进行安装)
启动
brew services start cassandra
关闭
brew services stop cassandra
What is Cassandra?
- 一种开源、可线性扩展、分布式和容错的 NoSQL 数据库。设计用于处理海量数据。
Main Feature
- 大规模可扩展架构
- 无主架构
- 线性扩展性能
- 无单点故障
- 故障节点可轻松恢复
- 具有灵活、动态的数据模型,可调整的数据一致性,多数据中心复制
- 数据压缩效率高
Cassandra与传统关系型数据库的主要区别是什么?
- 传统关系型数据库面向行设计,内部组织结构围绕行的处理,适合 OLTP场景
- Cassandra 列族数据库面向列设计,主要处理列,适合 OLAP 场景
Cassandra的复制策略?
复制策略是指 Cassandra 如何在集群中复制数据,放置数据副本
如何配置数据的复制和分布?
Cassandra 提供两种复制策略,包括SimpleStrategy
和 NetworkTopologyStrategy
- SimpleStrategy 用于只有一个数据中心的情况。SimpleStrategy 会在分区器选择的节点上放置第一个副本。之后,其余副本按顺时针方向放置在节点环中
- NetworkTopologyStrategy 用于有多个数据中心的情况。在网络拓扑策略中,会为每个数据中心分别设置副本。网络拓扑策略在环中按顺时针方向放置副本,直到到达另一个机架中的第一个节点
Cassandra的数据删除是如何工作的?有没有什么需要注意的地方?
- Cassandra 使用标记删除的方式,而不是立即删除数据。标记删除的数据会在后续的清理过程中删除。
注意的地方:
- 如果标记删除的数据过多,会影响查询性能,因为查询时需要扫描和过滤这些标记删除的数据。
- 需要注意Cassandra表的TTL(生存时间)设置,如果TTL设置不当,可能导致大量的tombstone积累。
Cassandra数据库中使用哪种查询语言?
Cassandra Query Language(CQL)是 Cassandra 数据库的查询语言。
Cassandra的设计目标是什么?
Apache Cassandra 的设计目标主要围绕着可扩展性、高可用性和无单点故障展开。
请描述一个实际应用场景,说明为什么选择使用 Cassandra数据库?
社交媒体的评论管理
Cassandra 面向列设计,适合处理大量数据,适合社交媒体评论管理场景,可以快速写入和读取评论数据,支持高并发读写操作。