赞
踩
直接去Cassandra的官网即可下载到最新版的Cassandra
Cassandra官网下载地址
下载好了以后,直接解压放入你想放入的盘即可
不需要任何其余的操作.
下载解压完成后,我们只需要打开终端,进入刚刚解压好的bin目录下
接着输入./cassandra
这里的命令后面可以跟上-f,代表在前端启动,意思就是窗口如果关闭,cassandra就停止运行,不加-f就是在后台运行.
输入./nodetool status可查看cassandra运行状态
看到UN即代表Cassandra已经正常启动了.
当Cassandra运行起来后,我们肯定要进行与它之间的交互,这时就要用到Cassandra自带的cqlsh一个Cassandra的驱动.
启动它也很简单,输入./cqlsh
然后就可以自己根据Cassandra的语法来写命令进行交互了,它的语法跟mysql的类似,这里还没有过多研究,暂时不写相关内容.
这个问题真是一言难尽,一点点的说吧.
首先如果想要运行cqlsh这个驱动,那么你的电脑必须装载python2.7和3.6以上的版本
它的官方文档里写的是2.7,但经过我的实验,只要是2.7+以内的版本都可以,mac是有自带的python版本,笔者的是2.7.16的版本,最开始没有看到官方文档的这个位置,我用3.7几的python试了好久,版本弄好了以后,接下来更大的坑出现了
不管我怎么操作,都是提示说我没有装cassandra的驱动还有python的路径不对,说让我安装驱动.
我当时就按着它的提示操作了.结果又坑了.
一直说python各种加密不支持找不到,我又又又在网上查了好久,中间尝试了各种方法,什么重新下载ssl,重载python,换python版本和环境,各种乱七八糟的我基本都试了一遍,结果还是不行.
让我有思路,成功解决这个问题的是看了这篇博客
OS X Python 3.7 openssl 终极冲突解决大法
这个博客虽然说的不是cassandra驱动相关的内容,但看了以后,我想会不会是我本地还装了有其它版本的python导致和自带的冲突了.然后我就决定删除之前那个高版本的python,只保留mac自带的版本
这是mac上python的安装位置,我是通过brew安装的,删除方法请参照下面这个博客
mac 卸载自己安装python和brew卸载python
删完之后,我重新运行了cqlsh,马上就可以使用了.
如果还不能使用,请参考下面这个博客:
macOS brew 更新后Python 2找不到md5
可视化工具用习惯了,所以去网上找了一下cassandra的可视化工具,发现了一款蛮精致的工具,虽然是有收费版,但目前免费版已经够我使用了,下载地址放在下面
tablePlus官网下载地址
上图就是我连上本地的cassandra数据库以后的界面图
springboot有提供cassandra的整合
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-cassandra</artifactId>
</dependency>
application.yml
spring:
data:
cassandra:
keyspace-name: pisx //数据库
#entity-base-packages: //集群
contact-points: 127.0.0.1 //ip地址
port: 9042 //端口
测试Demo
实体类和JPA的格式极其相似,完全可以照着jpa来使用
package com.example.cassandra.test; import org.springframework.data.cassandra.core.mapping.Column; import org.springframework.data.cassandra.core.mapping.PrimaryKey; import org.springframework.data.cassandra.core.mapping.Table; /** * @Author:wzp * @Date:Created in 3:13 PM 2020/5/9 * @Description: */ @Table("user") public class User { private static final long serialVersionUID = 3531754743416202852L; /** * 存储主键 */ @PrimaryKey private Integer id; @Column(value = "address") private String address; @Column(value = "user_name") private String userName; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
Dao 这个地方可以注意一下,引入了CassandraTemplate这个类,大致点开源码看了一下,其实和jpa那种模式差不多,提供一个模板让你使用crud的各种方法,详情请看官方文档
springboot-Cassandra
package com.example.cassandra.test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.cassandra.core.CassandraTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class UserDao{ @Autowired private CassandraTemplate cassandraTemplate; public List<User> getAll() { return cassandraTemplate.select("SELECT ID, user_name ,address FROM user", User.class); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。