Mac OS下Cassandra从安装到与springboot集成的基本使用

1. Mac OS下Cassandra的下载与安装

直接去Cassandra的官网即可下载到最新版的Cassandra
Cassandra官网下载地址
下载好了以后,直接解压放入你想放入的盘即可
不需要任何其余的操作.

2. Mac OS下Cassandra的使用

下载解压完成后,我们只需要打开终端,进入刚刚解压好的bin目录下
在这里插入图片描述
接着输入./cassandra
在这里插入图片描述
这里的命令后面可以跟上-f,代表在前端启动,意思就是窗口如果关闭,cassandra就停止运行,不加-f就是在后台运行.
输入./nodetool status可查看cassandra运行状态
看到UN即代表Cassandra已经正常启动了.
在这里插入图片描述

3.与Cassandra的交互

当Cassandra运行起来后,我们肯定要进行与它之间的交互,这时就要用到Cassandra自带的cqlsh一个Cassandra的驱动.
启动它也很简单,输入./cqlsh
在这里插入图片描述
然后就可以自己根据Cassandra的语法来写命令进行交互了,它的语法跟mysql的类似,这里还没有过多研究,暂时不写相关内容.

4.Mac OS下cqlsh驱动运行不了的坑

这个问题真是一言难尽,一点点的说吧.
首先如果想要运行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

5.Cassandra可视化工具

可视化工具用习惯了,所以去网上找了一下cassandra的可视化工具,发现了一款蛮精致的工具,虽然是有收费版,但目前免费版已经够我使用了,下载地址放在下面
tablePlus官网下载地址
在这里插入图片描述
上图就是我连上本地的cassandra数据库以后的界面图

6.Cassandra与springboot的整合

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);

    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值