我是redis的新手,但不知何故能够使用set创建函数并获取密钥。 我使用azure redis使所有API都被缓存,或者你可以创建本地客户端。
var redis = require("redis");
var Promise = require('bluebird');
console.log('hi data ');
// Add your cache name and access key.
var client = redis.createClient(6380,'<name>.redis.cache.windows.net', {auth_pass: '<key>', tls: {servername: '<name>.redis.cache.windows.net'}});
exports.getV2PostById = function(req, res, next){
var key = req.params.id+'-v21';
console.log("Get============"+key);
return getDataCache(key, req, res, next);
}
function getDataCache(key, req, res, next) {
return new Promise((resolved, reject) => {
client.get(key, function (err, data) {
if (err) throw err;
console.log(data);
if (data != null) {
console.log('response key')
return res.json(JSON.parse(data));
} else {
next();
}
});
})
}
exports.setExp = function(key, data){
console.log("Set============"+key);
console.log(data);
//client.set('key', 'value!', 'EX', 10);
client.setex(key+"1", 300, JSON.stringify(data), function (err, reply) {
console.log('set the key');
console.log(reply);
});
}
它运作良好,但不知何故redis文件说setex将来会到期。
client.set(key+"1", JSON.stringify(data), 'EX', 300, function (err, reply) {
console.log('set the key');
console.log(reply);
});
但是一旦我调用get方法它就无法正常工作它会返回null
任何人都可以指导我是错的。
答案 0 :(得分:0)
我找到了解决方案
Product name article_count
product3 12
product6 7
product4 5
product2 5
product7 5
product5 3
etc etc