Cassandra簡介 Cassandra是一個開源分散式NoSQL資料庫系統。 它最初由Facebook開發,用於儲存收件箱等簡單格式數據,集GoogleBigTable的數據模型與Amazon Dynamo的完全分散式的架構於一身。Facebook於2008將 Cassandra 開源,此後,由 ...
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: 今天終於開始了第一篇。哈哈,值得紀念一下。