Cassandra 数据库使用小记

Cassandra 数据库使用小记

一、安装与配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# cassadra
wget http://mirrors.shu.edu.cn/apache/cassandra/3.11.3/apache-cassandra-3.11.3-bin.tar.gz
tar -zxvf apache-cassandra-3.11.3-bin.tar.gz -C /usr/local/

# 建立软链,方便升级
cd /usr/local/
ln -s apache-cassandra-3.11.3 cassandra

# 添加到环境变量
cat << EOF >> /etc/profile
export PATH=/usr/local/cassandra/bin:\$PATH
EOF

source /etc/profile

# 修改配置,方便内网连接
vim /usr/local/cassandra/conf/cassandra.yaml
> cluster_name: 'Kong-dev-cluster'
> - seeds: "172.18.1.16"
> listen_address: 172.18.1.16
> rpc_address: 172.18.1.16

# 建立 cassandra 用户(cassandra建议非root用户运行)
groupadd cassandra
useradd -g cassandra cassandra
chown -R cassandra:cassandra /usr/local/cassandra/

# 启动 (默认非 daemon 模式,可配置人 supervisor)
cassandra -f

# or 配置 supervisor
cat << EOF > /usr/local/deploy/supervisord/conf/cassandra.conf
[program:cassandra]
user=cassandra
command=cassandra -f
autostart=false
autorestart=unexpected
stdout_logfile=/usr/local/deploy/log/cassandra.log
stderr_logfile=/usr/local/deploy/log/cassandra.err
EOF

二、命令行使用

技巧:cqlsh 提供的命令行是具有智能提示的,输入命令的部分字母,按Tab建可以出发,再CREATE KEYSPACE 这条命令中可以深切的感受到方便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cqlsh 172.18.10.217
cqlsh> show version;
cqlsh> show host;
cqlsh> desc cluster;
cqlsh> desc keyspaces;
cqlsh> CREATE KEYSPACE test_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
--(实际输入:C<Tab> k<Tab> test_keyspace w<Tab> s<Tab> <Tab> 1};)
cqlsh> desc keyspace test_keyspace;
cqlsh> use test_keyspace;
cqlsh:test_keyspace> desc tables;
cqlsh:test_keyspace> create table abc ( id int primary key, name varchar, age int );
cqlsh:test_keyspace> desc table abc;
cqlsh:test_keyspace> DROP TABLE abc ; -- abc 只输入 a, <Tab> 也可以自动补全哦
cqlsh:test_keyspace> drop KEYSPACE test_keyspace ;

更多命令请参考 官方文档

三、数据类型(附)

CQL类型 对应Java类型 描述
ascii String ascii字符串
bigint long 64位整数
blob ByteBuffer/byte[] 二进制数组
boolean boolean 布尔
counter long 计数器,支持原子性的增减,不支持直接赋值
decimal BigDecimal 高精度小数
double double 64位浮点数
float float 32位浮点数
inet InetAddress ipv4或ipv6协议的ip地址
int int 32位整数
list List 有序的列表
map Map 键值对
set Set 集合
text String utf-8编码的字符串
timestamp Date 日期
uuid UUID UUID类型
timeuuid UUID 时间相关的UUID
varchar string text的别名
varint BigInteger 高精度整型