Cassandra简介
- Cassandra是一个开源分布式NoSQL数据库系统。
- 它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
- 不过国内并未流行起来,除了最早的淘宝和360在用,加上阿里巴巴后来一直在推崇HBase,就GG了。。。
Cassandra特点
- Cassandra的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra集群来说,扩展性能是比较简单的事情,只管在群集里面添加节点就可以了。
- 上面的话太官方了,哈哈哈。,简单来说呢就是说它是一个P2P去中心化的东西,咱门平时传统用的数据库都会有Master/Slave,在复杂的场景下对于Master进行扩展是个非常麻烦的事,而Cassandra帮助我们解决了这个麻烦。
- 它是一个面向列的数据库,不向传统结构式数据库是用表来模拟关系,也就是说你可以随意扩展你的字段。你可以想象cassandra是一个连续嵌套的Map结构。如下图所示
使用docker搭建cassandra
我是比较懒的,docker的出现正好帮我解决了搭环境的麻烦事,让开发能够更加专注写bug。。。,咳咳废话不多说,下面咱开始搭建。
1.环境使用的是Vm ware15+Centos7+docker。
2.首先上 https://hub.docker.com/ 拉取cassandra的官方镜像
按照命令执行就行如下图
3.按照官网的提示执行如下命令
$ docker run --name some-cassandra --network some-network -d cassandra:tag
我们把上面的命令修改一下因为只是开发学习使用,把docker的网络去掉,名字也不需要大部分时候我们一般只用ID,还有就是我们一会要使用VsCode的插件连接Cassandra,所以需要把9042这个端口号映射出来,修改完毕的命令如下
$ docker run -d -p 9042:9042 cassandra
放到linux服务器上执行如下
VsCode插件安装
- 首先先创建一个CassandraWorkbench的工作目录如下图,当然你也可以手动建
- 然后cd到该目录用vscode打开 如下图
- 安装该插件
- 然后初始化该插件如下图
- 然后点击这个齿轮配置一下cassandra服务端
- 因为咱门服务端没有设置任何密码之类的,所以就用第一种就行jsonc文件修改图如下
- 当然你也可以按照插件官网提示的把这些系统的键空间给过滤掉
- 最后让我们创建一个键空间试一下吧。右键你刚才配置的服务端名字然后点击Create Keyspace,然后插件帮我们生成了CQL,点击一下执行发现创建成功了!!(vscode是不是很强大)
- 最后上一张工作面板的示意图
老早就打算开始写博客了,主要是因为想记录一下学习的路线和自己的成长,同时也希望能够帮助其他小伙伴能够少绕开一些坑。
ps: 今天终于开始了第一篇。哈哈,值得纪念一下。