Cassandra学习笔记
优势
- 模式灵活
文档按列存储,可以快速增加/删除字段 - 可扩展性
支持水平和垂直扩展,扩展操作容易 - 分布式写操作
有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败 - 写速度快
概念
节点:存储数据。
数据中心:节点的集合。
集群:集群是包含一个或多个数据中心的组件。
MemTable:存储器驻留的数据结构。提交日志后,数据将被写入mem表。有时,对于单列族,将有多个mem表。
SSTable:它是一个磁盘文件,当其内容达到阈值时,数据从mem表中刷新。
布隆过滤器:用于测试元素是否是集合(SSTabble)的成员,它是一种特殊的缓存。用于快速判断一个SSTable中是否包含给定条件的数据,减少磁盘开销
键空间(Keyspace),相当于database
复制因子 - 它是集群中将接收相同数据副本的计算机数。
列族:键空间是一个或多个列族的列表的容器。列族又是一个行集合的容器。每行包含有序列。列族表示数据的结构。每个键空间至少有一个,通常是许多列族。
键空间
1 | CREATE KEYSPACE testwuz WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3}; |
Strategy Name: 副本放置策略,SimpleStrategy,NetworkTopologyStrategy。
Replication Factor : 可以通过使用新的复制因子来更改复制因子。
DURABLE_WRITES : DURABLE_WRITES值可以通过指定其值true / false来更改。 默认情况下为true。 如果设置为false,则不会将更新写入提交日志,反之亦然。
MenTable
SSTable(Read Only,定期进行compaction,垃圾回收、合并SSTable)
CommitLog
Gossip
Partitioner
参考文档
cd /tmp
wget https://downloads.apache.org/cassandra/3.11.10/apache-cassandra-3.11.10-bin.tar.gz
tar zxvf apache-cassandra-3.11.10-bin.tar.gz
mv apache-cassandra-3.11.10 /usr/local/
rm -f apache-cassandra-3.11.10-bin.tar.gz
(cat << EOF
export CASSANDRA_HOME=/usr/local/apache-cassandra-3.11.10
PATH=$CASSANDRA_HOME/bin:$PATH
EOF
) >> /etc/profile.d/cassandra.sh
source /etc/profile
cd /usr/local/apache-cassandra-3.11.10/conf
CREATE keyspace dennis WITH replication = {‘class’:’SimpleStrategy’, ‘replication_factor’ : 1};
DESCRIBE keyspaces;
drop keyspace dennis;
use dennis;
DESC tables;
CREATE TABLE student(
id int,
name varchar,
PRIMARY KEY(id)
);
INSERT INTO student (id,name) VALUES (1,’Naruto’);
select * from student where id=2;
DESC table student;
nodetool describering keyspace
nodetool gossipinfo
nodetool describecluster
nodetool ring