sudo apt-get install redis-server
2. 編輯修改 redis 的設定: /etc/redis/redis.conf, 將 requirepass 這個註解取消, 並填上自行設定的密碼, 剛開始可以用 '123456' 來測試看是否運作正常, .之後記得要改掉.
3. 重新啟動 redis server:
sudo /etc/init.d/redis-server stop
sudo /etc/init.d/redis-server start
4. node js 是使用 createClient(port, host, auth_pass) api 來連線
5. 為了避免非同步程式出現callback hell(輪迴地獄), 並讓程式看起來簡潔比較好理解一點,可以使用 bluebird 這隻 Promise 模組, 用 npm 就可以直接安裝, 用 require('bluebird') 導進程式後就可以使用了:
npm install bluebird --save
6. 經過 promisifyAll 的 redis API 會帶有 Async 的尾綴詞, 是因為它都是非同步的API, 因此 .on() 須改為 .onAsync(), .get() 須改用 .getAsync(), .set() 須改用 .setAsync(), 當然原先 API 還是可以使用, 只不過程式寫起來會很累綴. 對於像是 , .on('error', console.log) 就可以直接顯示錯誤訊息,其實並不需要使用經 promisify 過的 API:
// redisTest.js
var Promise = require("bluebird");
var redis=Promise.promisifyAll(require("redis"));
var port=6379;
var host='127.0.0.1';
var auth_pass={auth_pass:'123456'};
var service=redis.createClient(port, host, auth_pass);
service.onAsync('ready').then( function() { // console.log('ready');
service.getAsync('version').then(function(reply) {
if( reply !== null ) { console.log(reply); return ; }
service.setAsync('version','1.0.0.0').then(function(reply) {
console.log(reply); // should be 'OK'
})
})
})
service.on("error",console.log);
沒有留言:
張貼留言