搭建安裝環(huán)境
1)Deepin 15.8
2)JDK 1.8
3)Python
創(chuàng)建目錄
#mkdir?/usr/local/cassandra#Cassandra的安裝目錄
#mkdir?/data/cassandra#
#mkdir?/data/cassandra/commitlog#commitlog文件在磁盤(pán)總的存儲(chǔ)位置
#mkdir?/data/cassandra/data#cassandra的SSTabele文件在磁盤(pán)中的存儲(chǔ)位置
#mkdir?/data/cassandra/hints??
#mkdir?/data/cassandra/saved_caches#數(shù)據(jù)緩存文件在磁盤(pán)中的存儲(chǔ)位置
下載Cassandra安裝包并解壓
http://cassandra.apache.org/ ????(cassandra apache官網(wǎng)地址)
http://www.datastax.com/ ????(cassandra發(fā)行商網(wǎng)站)
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?#最主要的配置文件
需要修改的項(xiàng)目恃疯,相關(guān)路徑修改為前面我們建的文件夾路徑墨闲。
#集群名稱(chēng),建議修改盾鳞,以免沖突
cluster_name:?'Test?Cluster'
#存儲(chǔ)提示目錄
hints_directory:?/data/cassandra/hints
#SSTable文件在磁盤(pán)中的存儲(chǔ)位置,可以有多個(gè)地址
data_file_directories:
-?/data/cassandra/data
#commitlog文件在磁盤(pán)中的存儲(chǔ)位置
commitlog_directory:?/data/cassandra/commitlog
#保存表和行的緩存
saved_caches_directory:?/data/cassandra/saved_caches
seed_provider
#Cassandra集群中的種子節(jié)點(diǎn)地址,可以設(shè)置多個(gè),用半角逗號(hào)隔開(kāi),必須是ip
-?seeds:?"127.0.0.1"
#Cassandra集群中服務(wù)器與服務(wù)器之間相互通信的地址
listen_address:?localhost
#是否開(kāi)始thrift?rpc服務(wù)器
start_rpc:?true
#Cassandra服務(wù)器對(duì)外提供服務(wù)的地址?本機(jī)ip
rpc_address:?localhost
#Cassandra服務(wù)器對(duì)外提供服務(wù)的端口號(hào)
rpc_port:?9160
啟動(dòng)和關(guān)閉Cassandra
啟動(dòng)
cd?apache-cassandra-3.7/bin/
./cassandra?-f?-R?#啟動(dòng)雁仲,-f表示前臺(tái)啟動(dòng)琐脏,-R表示以管理員身份啟動(dòng)
連接Cassandra數(shù)據(jù)庫(kù)
/cqlsh?#進(jìn)入數(shù)據(jù)庫(kù),類(lèi)似于mysql?現(xiàn)在還沒(méi)有配置身份驗(yàn)證?所以暫時(shí)不需要帶上用戶名密
退出數(shù)據(jù)庫(kù)連接
quit
或者ctrl+D
關(guān)閉Cassandra
kill?-9?pid
一些calsh命令
查看keyspace
desc?keyspaces;
創(chuàng)建一個(gè)keysapce
CREATE?KEYSPACE?test
WITH?replication?=?{'class':?'SimpleStrategy',?'replication_factor':?'1'}
切換到test keyspace
use?test;
查看keyspace中的表
desc?tables;
創(chuàng)建表users
CREATE?TABLE?test.users?(
userid?int?PRIMARY?KEY,
fname?text,
lname?text
);
插入數(shù)據(jù)
insert?into?users?(userid,?fname,?lname?)?VALUES?(?1,'john','smith');
insert?into?users?(userid,?fname,?lname?)?VALUES?(?2,'john','tiger');
查詢看看
select?*?from?users;
查詢結(jié)果
需要注意的是吹艇,如果要執(zhí)行帶where條件的查詢昂拂,那么條件中指定的列必須先建索引格侯,否則會(huì)出錯(cuò):
創(chuàng)建索引
create?index?on?users(lname);
創(chuàng)建好索引之后,再次執(zhí)行上面的查詢語(yǔ)句联四。
更多Cassandra命令我們下次再詳細(xì)解讀朝墩。
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
創(chuàng)建實(shí)體類(lèi)
@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);
}
}
進(jìn)行測(cè)試
@RestController
publicclassUserController{
@Autowired
privateUserDao?userDao;
@RequestMapping("users")
publicListgetAll(){
returnuserDao.getAll();
}
@RequestMapping("add")
publicUsersave(){
User?user?=newUser();
user.setUserid(4);
user.setFname("鯨魚(yú)");
user.setLname("吳");
returnuserDao.insert(user);
}
}
完。