Я новичок в Redis, но каким-то образом могу создать функцию с помощью набора и получить ключ.
Я использую 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
Может ли кто-нибудь наставить меня на ошибку?