Node.js 花盒:Redis 的使用

QL²⁰¹⁸發表於2019-03-25
最近公司的 ASR 實時推送以及登入認證模組都使用了 Redis ,因此在完成功能的同時,整理一下 Node.js 從零開始對 Redis 使用的文件。

1、本地安裝 Redis

1.1、安裝地址:


1.2、安裝流程:

  • 我是在 github 下載【win-3.2.100】版本,下載包:【Redis-x64-3.2.100.msi
  • 一鍵式安裝,直到安裝完畢
  • 找到安裝路徑,在安裝路徑下開啟 redis-cli.exe 就可以使用
  • 並且輸入 ping 出現 PONG ,說明連線成功

Node.js 花盒:Redis 的使用

  • 設定密碼:可以通過 config get requirepass 檢視密碼,可以通過 config set requirepass 123456 設定密碼。但是在這種設定下,Redis 一旦重啟密碼就會清空,當然如果是伺服器上的 Redis,可不能隨隨便便重啟。

Node.js 花盒:Redis 的使用

  • 在本地 Redis 上可以設定永久密碼,具體流程如下:

- 開啟 redis.windows.conf 和 redis.windows-service.conf 的兩個配置檔案。
- 在配置檔案中找到 requirepass 這個引數。
- 在它的這個 # requirepass foobared 語句下邊
- 寫下你的密碼:requirepass 123456
- 例:
# requirepass foobared
requirepass 123456

- 備註:只修改一個檔案是不行的
- 重啟 Redis 生效複製程式碼
  • 重啟 Redis:

Node.js 花盒:Redis 的使用

  • 一旦設定密碼後,開啟 redis-cli.exe 可就沒許可權操作了

Node.js 花盒:Redis 的使用

  • 這時我們可以通過如下方式登入:

- 開啟 cmd
- cd 到 Redis 的安裝路徑
- 輸入指令:redis-cli.exe -h 127.0.0.1 -p 6000 -a xxx
-h: 是指地址 127.0.0.1 指的是本地,如果是遠端的就寫遠端的地址
-p: 這邊是埠號,具體看個人的配置 redis.windows.conf 裡面的,預設是 6379
-a: 密碼,和 -p 一樣,沒設定就不用寫 -a了複製程式碼

Node.js 花盒:Redis 的使用

2、Node.js 連線 Redis

2.1、NPM 包

  • node_redis
  • GitHub:https://github.com/NodeRedis/node_redis

2.2、連線程式碼

  • Install

npm install redis複製程式碼

  • 基本

const redis = require("redis");
// 埠、IP、密碼
let client = redis.createClient(redisPort, redisAddress, { auth_pass: redisPassword });
// set 插入
client.set('stringKey', 'stringValue'); 
client.set('stringKey', 'stringValue', 'EX', 10); // 可設定過期時間(單位:秒)
// get 獲取
client.get('stringKey', (err, value) => {
    if (err) {
        console.log(err);
    }
    console.log(value);
});
// del 刪除
client.del('stringKey');
複製程式碼

  • 釋出訂閱

const redis = require('redis');
// 埠、IP、密碼
let client = redis.createClient(redisPort, redisAddress, { auth_pass: redisPassword });
// 監聽客戶端連線 Redis 成功,成功後執行回撥
client.on("ready", () => {
    //訂閱主題
    client.subscribe(redisTopic);
});
// 監聽客戶端連線 Redis 異常,異常後執行回撥
client.on("error", function (error) {
    console.log(error);
});
// 監聽訂閱主題成功,成功後執行回撥
client.on("subscribe", (channel, count) => {
    console.log(`訂閱頻道:${channel},當前總共訂閱${count}個頻道。`);
});
// 監聽 Redis 釋出的訊息,收到訊息後執行回撥。
client.on("message", (channel, message) => {
    console.log(`當前頻道:${channel},收到訊息為:${message}`);
});            
// 監聽取消訂閱主題,取消後執行回撥
client.on("unsubscribe", (channel, count) => {
    console.log(`取消訂閱頻道:${channel},當前總共訂閱${count}個頻道。`);
});複製程式碼

3、other(目前暫未想好需要補充什麼,敬請期待。。。)



相關文章