因项目用到而写,先摘录下来,以备参考:
const fs = require('fs')
const path = require('path')
const redis = require("redis");
const basePath = path.resolve('./')
/*
* 注意:如果redis-server与nodejs客户端都在本地,下列可写成
* client = _redis.createClient();否则要对括号内容进行更改
*/
const client = redis.createClient(6379,'127.0.0.1');//括号内容对应:(端口号,主机)
client.on("ready", function (err) {
console.log("ready :" , "yes"); //链接成功检测
});
client.on("error", function (err) {
console.log("Error :" , err); //错误检测
});
module.exports = (function () {
var mod = {};
mod.webSet = function(res, _key, value, cb){
client.set(_key, JSON.stringify(value), function(err, result){
if (err) {
fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
res.json({
code: 500,
data: err
})
} else {
if (cb) {
cb(result)
} else {
res.json({
code: 200,
data: result
})
}
}
})
};
mod.webGet = function(res, _key, cb){
client.get(_key, function(err, result){
if (err) {
fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
res.json({
code: 500,
data: err
})
} else {
if (cb) {
cb(JSON.parse(result))
} else {
res.json({
code: 200,
data: JSON.parse(result)
})
}
}
})
};
mod.set = function (_key, value, cb) {
client.set(_key, JSON.stringify(value), function (err, result) {
if (err) {
fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
cb && cb()
} else {
cb && cb(result);
}
})
};
mod.get = function (_key, cb) {
client.get(_key, function (err, result) {
if (err) {
console.log(err);
fs.writeFile(`${basePath}/logs/sqlerr.log`, err, () => {})
cb && cb();
} else {
cb && cb(JSON.parse(result));
}
})
};
return mod
})()
// 测试代码
// redis.set("swim","2012039210213",new Date().getTime(),function(result){
// console.log(result)//存入的状态,正常则为 "OK"
// })
// redis.get("swim",function(result){
// console.log(result)//取出的值
// })
/*
* 一下为redis消息通讯机制的应用代码
*/
let sub = redis.createClient(6379, '127.0.0.1'); // 监听消费者
let pub = redis.createClient(6379, '127.0.0.1'); // 生产者
// 在sub开始监听时允许触发subscribe事件进行操作,类似连接数据库的connect事件
sub.on('subscribe', function (channel, count) {
console.log(`${channel}:${count}`); // test channel:1
pub.publish('test channel', 'channel message test')
})
sub.on('message', function (channel, message) {
console.log(`${channel}-message:${JSON.stringify(message)}`)
})
sub.subscribe('test channel');