1、首先看一下各节点状态
neohope@debian8-node01:~/Deploy/apache-cassandra-3.0.1$ bin/nodetool status Datacenter: datacenter1 ======================= Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN 172.16.172.23 230.25 KB 256 ? 760879a3-e06b-43bb-97bf-b045a655da9c rack1 UN 172.16.172.24 237.17 KB 256 ? 5bf3e77d-ccf4-4f81-9465-de0babe1e0cc rack1 UN 172.16.172.25 241.55 KB 256 ? 5a7ed53f-c8e0-4658-af9a-41880dada5ef rack1 Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
2、然后用cqlsh连接cassandra
neohope@debian8-node01:~/Deploy/apache-cassandra-3.0.1$ bin/cqlsh debian8-node01 Connected to NeoCluster at debian8-node01:9042. [cqlsh 5.0.1 | Cassandra 3.0.1 | CQL spec 3.3.1 | Native protocol v4] Use HELP for help. cqlsh:neokeyspace> help Documented shell commands: =========================== CAPTURE CLS COPY DESCRIBE EXPAND LOGIN SERIAL SOURCE UNICODE CLEAR CONSISTENCY DESC EXIT HELP PAGING SHOW TRACING CQL help topics: ================ AGGREGATES CREATE_KEYSPACE DROP_TRIGGER TEXT ALTER_KEYSPACE CREATE_MATERIALIZED_VIEW DROP_TYPE TIME ALTER_MATERIALIZED_VIEW CREATE_ROLE DROP_USER TIMESTAMP ALTER_TABLE CREATE_TABLE FUNCTIONS TRUNCATE ALTER_TYPE CREATE_TRIGGER GRANT TYPES ALTER_USER CREATE_TYPE INSERT UPDATE APPLY CREATE_USER INSERT_JSON USE ASCII DATE INT UUID BATCH DELETE JSON BEGIN DROP_AGGREGATE KEYWORDS BLOB DROP_COLUMNFAMILY LIST_PERMISSIONS BOOLEAN DROP_FUNCTION LIST_ROLES COUNTER DROP_INDEX LIST_USERS CREATE_AGGREGATE DROP_KEYSPACE PERMISSIONS CREATE_COLUMNFAMILY DROP_MATERIALIZED_VIEW REVOKE CREATE_FUNCTION DROP_ROLE SELECT CREATE_INDEX DROP_TABLE SELECT_JSON
3、查看并新建keyspace
cqlsh> create keyspace neokeyspace
... with replication={'class':'SimpleStrategy','replication_factor':2};
cqlsh> describe keyspaces
neokeyspace system_auth system_distributed
system_schema system system_traces
cqlsh> use neokeyspace;
4、新建表
cqlsh:neokeyspace> create table patient(pid text primary key,pname text,psex text);
cqlsh:neokeyspace> describe tables;
patient
cqlsh:neokeyspace> describe patient;
CREATE TABLE neokeyspace.patient (
pid text PRIMARY KEY,
pname text,
psex text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
5、插入并查询数据
cqlsh:neokeyspace> insert into patient(pid,pname,psex)
... values('p001','zhangsan','male');
cqlsh:neokeyspace> insert into patient(pid,pname,psex)
... values('p002','lisi','male');
cqlsh:neokeyspace> insert into patient(pid,pname,psex)
... values('p002','wangwu','male');
cqlsh:neokeyspace> select * from patient;
pid | pname | psex
------+----------+------
p001 | zhangsan | male
p002 | wangwu | male
(2 rows)
发现了什么没?当插入两条key相同的数据后,第一条直接被第二条覆盖掉了。
6、更新并查询数据
cqlsh:neokeyspace> insert into patient(pid,pname) values('p002','lisi');
cqlsh:neokeyspace> insert into patient(pid,pname,psex)
... values('p003','wangwu','maile');
cqlsh:neokeyspace> select * from patient;
pid | pname | psex
------+----------+-------
p001 | zhangsan | male
p003 | wangwu | maile
p002 | lisi | male
(3 rows)
cqlsh:neokeyspace> select pid from patient;
pid
------
p001
p003
p002
(3 rows)
7、删除表
cqlsh:neokeyspace> drop table patient;
8、删除表空间
cqlsh:neokeyspace> drop namespace neokeyspace;
恩,到这里,基本的Cassandra操作就完成了。