当前位置:   article > 正文

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

mac 安装配置cassandra

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>
  • 1
  • 2
  • 3
  • 4

application.yml

spring:
    data:
        cassandra:
            keyspace-name: pisx //数据库
            #entity-base-packages: //集群
            contact-points: 127.0.0.1 //ip地址
            port: 9042 //端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

测试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;
    }
}

  • 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
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

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

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/126339?site
推荐阅读
相关标签
  

闽ICP备14008679号