couchbase的使用(springboot連接couchbase,node.js連接couchbase)

網上的couchbase資料十分有限,這無疑給我們學習增加了難度。
Couchbase是membase的升級版,membase與memcache是同一家公司出的,Couchbase包含了memcache的功能。
首先要安裝使用,去官網下很不推薦,網速慢,下載頁面也加載不出來,可以下載這個6.x的新版本de

鏈接:https://pan.baidu.com/s/1PpPXHV2V0z1dGDselAz-Pg
提取碼:ngwx

安裝之後,推薦使用web端控制檯,雙擊之後會打開web界面,第一次使用需要註冊用戶,
在這裏插入圖片描述
登入之後,這裏我建了一個集羣,如果英語差,可以使用谷歌瀏覽器翻譯頁面

在這裏插入圖片描述
要使用couchbase首先要知道他是什麼,怎麼使用,他的優點等等。
官方文檔,版本比較低,但對它介紹的很詳細,這裏使用谷歌翻譯了中文頁面
https://docs.couchbase.com/couchbase-manual-2.2/#introduction-to-couchbase-server
在這裏插入圖片描述
當你對它有了一個整體的認識就可以操作了。
剛安裝好是沒有數據的,官方給我們提供了三個桶(數據庫),有示例數據,建議全部添加,我這裏加了啤酒樣品的桶,

在這裏插入圖片描述

點擊文件就可以進入到數據展示頁,是一個key,對應一個json文檔,

在這裏插入圖片描述

找到 query功能,輸入下面的查詢語句,點擊執行,桶的名字要加反引號(看起來是和sql查詢是類似的語法),可以看到查詢結果。

SELECT * FROM `beer-sample` 
     WHERE brewery_id IS NOT MISSING AND type="beer" LIMIT 5;

在這裏插入圖片描述
自己新建一個桶,在新建一個用戶,切記用戶的名字和桶的名字務必保持一致,
在這裏插入圖片描述
新建用戶
在這裏插入圖片描述
完成後,給用戶賦權,把這個桶的所有權限給到用戶
在這裏插入圖片描述
建好之後,我們先用java的方式連接couchbase
sprintboot+jpa的方式
倉庫地址:https://github.com/caibixyy/couch.git
因爲代碼就一個實體,然後業務類,控制類所有這裏不展示,可以從倉庫clone,看配置
我建了一個桶,beer,建了一個用戶也叫beer(再次提示必須一樣,不然將連接不上這個桶,用戶和桶必須綁定,賦予權限),密碼如下

server:
  port: 8085
spring:
  couchbase:
    bootstrap-hosts: localhost
    bucket:
      name: beer
      password: rootrootrootroot

logging:
  level:
    root: debug
@GetMapping("/insert")
    public Iterable<BeerSimple> findAll(){
        for (int i = 21; i < 30; i++) {
            BeerSimple b= new BeerSimple("brewery_id"+i,"青島","嶗山真品質",2,"勇闖天涯",i,"big","haha",1,new Date(),7.2);
            beerSimpleService.save(b);
        }
        return null;
    }

啓動,訪問,成功插入數據
在這裏插入圖片描述
大功告成。

node.js連接couchbase。
這裏我的node版本是12的新版本,couchbase是6.x的
你要確保node.js的環境完全沒有問題,安裝的時候建議您勾選安裝插件依賴,需要python2.7.17和vasual studio 2017
這是node自動給我裝的插件,此過程較長,建議你等會,再等會
在這裏插入圖片描述
在這裏插入圖片描述
首先鏡像換成淘寶的,在cmd裏

npm install -g cnpm --registry=https://registry.npm.taobao.org

在執行命令

npm install couchbase

如果過程中報錯了,執行一下這個

npm install -g node-gyp

或者

npm config set msvs_version 2017

或者

npm install --global --production windows-build-tools

或者

npm init

看錯誤提示是什麼錯誤

安裝完成後寫js文件

var couchbase = require("couchbase");
var cluster = new couchbase.Cluster('localhost:8091');
var bucket = cluster.openBucket('beer','rootrootrootroot', function(err) {
    if (err) {
        // Failed to make a connection to the Couchbase cluster.
        throw err;
    }
    // Retrieve a document
    bucket.get('brewery_id', function (err, result) {
        if (err) {
            throw err;
        }
        var doc = result.value;
        console.log(doc.name)
    })
})
var couchbase = require("couchbase");
var cluster = new couchbase.Cluster('localhost:8091');
var bucket = cluster.openBucket('beer','rootrootrootroot', function(err) {
    if (err) {
        // Failed to make a connection to the Couchbase cluster.
        throw err;
    }
  bucket.insert('brewery_id20', {"abv":7.2,"name":"勇闖天涯","description":"嶗山真品質","upc":1,"style":"big","_class":"com.example.demo.entity.BeerSimple","category":"青島","type":"haha","ibu":2,"updated":1573625330410,"srm":19}, function (err, result) {
    if (err) {
        console.log(err)
    } else {
        console.log(result)
    }
})
})

在這裏插入圖片描述
在這裏插入圖片描述

ok,大功告成了。

2019-12-6補充
由於對此數據庫的片面認知,又學到了一點

//引入
const Couchbase = require("couchbase");;
const cluster = new Couchbase.Cluster("couchbase://localhost");
cluster.authenticate("Administrator", "123456");
const bucket = cluster.openBucket("card-sample");

//調用,封裝成一個方法,或寫一個http請求直接調用都可以
 return new Promise((resolve, reject) => {
        bucket.get(主鍵, (error, result) => {
          if(error) {
            return reject(
              httpError(error)
            );
          }
          resolve(result);
        });
      });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章