1、什么是Cassandra:分布式key-value存储系统,是一个混合型的非关系的数据库
2、存储结构:基于列族Columm Family 的四维或五维模型。在Cassandra写入数据之前,需要先记录日志CommitLog,然后数据开始写入到Column Family对应的Memtable(是一种按照Key排序数据的内存结构)中,在满足一定条件时,再把Memtable的数据批量刷新到磁盘,存储为SSTable
3、基本概念:
Cluster:Cassandra的节点实例,包含度多个KeySpace
KeySpace:用于存放ColumnFamliy的容器,相当于关系型数据库中的schema或者database
ColumnFamily:用于存放Column的容器,类似关系型数据库的中的table
SuperColumn: 特殊的Column,它的Value可以包含多个Column
2、存储结构:基于列族Columm Family 的四维或五维模型。在Cassandra写入数据之前,需要先记录日志CommitLog,然后数据开始写入到Column Family对应的Memtable(是一种按照Key排序数据的内存结构)中,在满足一定条件时,再把Memtable的数据批量刷新到磁盘,存储为SSTable
3、基本概念:
Cluster:Cassandra的节点实例,包含度多个KeySpace
KeySpace:用于存放ColumnFamliy的容器,相当于关系型数据库中的schema或者database
ColumnFamily:用于存放Column的容器,类似关系型数据库的中的table
SuperColumn: 特殊的Column,它的Value可以包含多个Column
Columns: Cassandra的最基本单位,由name,value,timestamp组成
4、关系模型图如下
5、ScyllaDB是用C++重写的Cassandra,每节点每秒处理100万TPS。完全兼容Cassandra,拥有比Cassandra多10x倍的吞吐量,降低了延迟
6、使用cqlsh连接ScyllaDB(cql全拼是:cassandra query language )
1)连接:cqlsh 172.16.100.141 --cqlversion 3.2.1(连接成功后,会显示所有的KeySpace,相当于关系型数据库中的“数据库”)
2)查询数据库信息:describe keyspace1;(查询其中某一个KeySpace,会显示该KeySpace中所有的ColumnFamily,相当于关系型数据库中的“表”)
3)切换数据库:use keyspace1;(进入该KeySpace)
4)查询数据:select * from ColumnFamily1;(查询其中某一个ColumnFamliy的所有信息)