redis的安装:菜鸟教程:redis安装
redis管理工具:链接:http://pan.baidu.com/s/1eSxJRLC 密码:zdgy
package.json 添加
执行 npm install 添加redis依赖
在conf文件夹下建立 loaclredis.js文件
module.exports = {
redis: {
host: '127.0.0.1',
port: "6379",
ttl:1000*60*2
}
};
在根目录下建立redis.js文件建立redis初始化文件
const redis = require("redis");
const RedisOptions = require('./conf/localredis');//redis配置文件
const client = redis.createClient(RedisOptions.redis);
client.on("error", function (err) {
console.log("Error " + err);
});
client.hmset('myname', { name:'msq', truename: 'MaQun ' }, function(err) {
console.log(err)
});//建立一个字段存储对象
client.expire('myname',8);//设置过期时间为8秒
redis.client = client;
module .exports = redis;
工作目录:
建立路由
router.get('/redistest', (req, res, next)=> {
redis.client.hgetall('myname',(err,object)=>{
res.json(object);
});
});
运行之后,页面输出:
8秒之后:
node_redis 原生只支持callback写法 但官方支持使用bluebird工具将其Promise化 bluebird地址:https://github.com/petkaantonov/bluebird
添加依赖:
"bluebird":"latest"
修改redis.js文件:
const redis = require("redis");
const RedisOptions = require('./conf/localredis');//redis配置文件
const client = redis.createClient(RedisOptions.redis);
/*-------------Promise化Redis-------*/
const bluebird = require("bluebird");
bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
/*---------------------------------*/
client.on("error", function (err) {
console.log("Error " + err);
});
client.hmset('myname', { name:'msq', truename: 'mashouqun ' }, function(err) {
console.log(err)
});
client.expire('myname',15);
redis.client = client;
module .exports = redis;
这样路由可以写成:
router.get('/redistest2', (req, res, next)=> {
redis.client.multi().hgetall('myname').execAsync()
.then(r=>{
res.json(r);
})
});
router.get('/redistest3', (async(req, res, next)=> {
let r = await redis.client.mutli().hgetall('myname').execAsync();
res.json(r);
}));