我想创建一个将键(字符串)作为输入的函数。如果key存在于缓存中,函数将返回true,否则将key添加到缓存中并返回false。我对 redis 很陌生,所以我感谢所有帮助。
const redis = require('redis');
const client = redis.createClient();
const lookup = (key) => {
client.get(key, (err, reply) => {
if(err) return err;
if(reply !== null) return true;
if(reply === null) {
client.set(key, 1);
return false;
}
}) }
const key = 'key';
const doesKeyExist = lookup(key);
console.log(doesKeyExist);
答案 0 :(得分:0)
由于 node-redis
不支持 promises,你需要给你的函数传递一个回调,或者看看如何使用 util.promisify
没有 util.promisify
的解决方案:
const redis = require('redis');
const client = redis.createClient();
const lookup = (key, callback) => {
client.get(key, (err, reply) => {
if(err) callback(err, null);
if(reply !== null) callback(null, true);
if(reply === null) {
client.set(key, 1);
callback(null, false);
})
}
const key = 'key';
lookup(key, (err, doesKeyExist) => {
console.log(doesKeyExist);
});