美文网首页
springboot集成Cassandra

springboot集成Cassandra

作者: 未赋值 | 来源:发表于2019-01-22 16:58 被阅读0次

搭建安装环境

1)Deepin 15.8

2)JDK 1.8

3)Python

创建目录

#mkdir /usr/local/cassandra#Cassandra的安装目录

#mkdir /data/cassandra#

#mkdir /data/cassandra/commitlog#commitlog文件在磁盘总的存储位置

#mkdir /data/cassandra/data#cassandra的SSTabele文件在磁盘中的存储位置

#mkdir /data/cassandra/hints  

#mkdir /data/cassandra/saved_caches#数据缓存文件在磁盘中的存储位置

下载Cassandra安装包并解压

http://cassandra.apache.org/     (cassandra apache官网地址)

http://www.datastax.com/     (cassandra发行商网站)

cd /usr/local/cassandra

wget http://archive.apache.org/dist/cassandra/3.7/apache-cassandra-3.7-bin.tar.gz

tar –zxvf apache-cassandra-3.7-bin.tar.gz

配置

cd apache-cassandra-3.7/conf/

vim cassandra.yaml #最主要的配置文件

需要修改的项目,相关路径修改为前面我们建的文件夹路径。

#集群名称,建议修改,以免冲突

cluster_name: 'Test Cluster'

#存储提示目录

hints_directory: /data/cassandra/hints

#SSTable文件在磁盘中的存储位置,可以有多个地址

data_file_directories:

- /data/cassandra/data

#commitlog文件在磁盘中的存储位置

commitlog_directory: /data/cassandra/commitlog

#保存表和行的缓存

saved_caches_directory: /data/cassandra/saved_caches

seed_provider

#Cassandra集群中的种子节点地址,可以设置多个,用半角逗号隔开,必须是ip

- seeds: "127.0.0.1"

#Cassandra集群中服务器与服务器之间相互通信的地址

listen_address: localhost

#是否开始thrift rpc服务器

start_rpc: true

#Cassandra服务器对外提供服务的地址 本机ip

rpc_address: localhost

#Cassandra服务器对外提供服务的端口号

rpc_port: 9160

启动和关闭Cassandra

启动

cd apache-cassandra-3.7/bin/

./cassandra -f -R #启动,-f表示前台启动,-R表示以管理员身份启动

连接Cassandra数据库

/cqlsh #进入数据库,类似于mysql 现在还没有配置身份验证 所以暂时不需要带上用户名密

退出数据库连接

quit

或者ctrl+D

关闭Cassandra

kill -9 pid

一些calsh命令

查看keyspace

desc keyspaces;

创建一个keysapce

CREATE KEYSPACE test

WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}

切换到test keyspace

use test;

查看keyspace中的表

desc tables;

创建表users

CREATE TABLE test.users (

userid int PRIMARY KEY,

fname text,

lname text

);

插入数据

insert into users (userid, fname, lname ) VALUES ( 1,'john','smith');

insert into users (userid, fname, lname ) VALUES ( 2,'john','tiger');

查询看看

select * from users;

查询结果

需要注意的是,如果要执行带where条件的查询,那么条件中指定的列必须先建索引,否则会出错:

创建索引

create index on users(lname);

创建好索引之后,再次执行上面的查询语句。

更多Cassandra命令我们下次再详细解读。

SpringBoot集成Cassandra

maven依赖

org.springframework.boot

spring-boot-starter-data-cassandra

com.datastax.cassandra

cassandra-driver-core

3.6.0

application.properties配置文件中添加如下配置

spring.data.cassandra.cluster-name=Test Cluster

spring.data.cassandra.keyspace-name= test

spring.data.cassandra.contact-points=127.0.0.1

spring.data.cassandra.port=9042

创建实体类

@Data//lombok注解

@Table("users")//Cassandra的表注解,value指定表名

publicclassUser{

@PrimaryKey

privateintuserid;

privateString fname;

privateString lname;

}

CassandraTemplate操作表

@Repository

publicclassUserDao{

@Autowired

privateCassandraTemplate template;

publicListgetAll(){

returntemplate.select("select * from users", User.class);

}

publicUserinsert(User user){

returntemplate.insert(user);

}

}

进行测试

@RestController

publicclassUserController{

@Autowired

privateUserDao userDao;

@RequestMapping("users")

publicListgetAll(){

returnuserDao.getAll();

}

@RequestMapping("add")

publicUsersave(){

User user =newUser();

user.setUserid(4);

user.setFname("鲸鱼");

user.setLname("吴");

returnuserDao.insert(user);

}

}

完。

相关文章

网友评论

      本文标题:springboot集成Cassandra

      本文链接:https://www.haomeiwen.com/subject/qkgljqtx.html