0
我有以下設置來設置和從上面從Redis的無法獲得Redis的數據,但可以寫信給Redis的
var ttl = '60';
function someRandom(value, callback){
client.exists(value, function check(err, data){
if(data === 0){
//do functionality
client.set(value,'nx','ex',ttl, function(err,data){
callback(null);
});
}else{
client.incr(value);
callback(null);
}
})
}
校驗值現在,有在設定值沒有問題。根據exists
函數,如果該值存在,則返回「1」,否則返回「0」。但是當我檢查redis中的相似值時,它已經存在時返回「0」。
添加的詳細信息
當我檢查在第二次嘗試的值,則ERR = NULL和數據= 0,當它應該是「1」作爲值已經存在。
而且使用redis的-CLI命令返回1
的ioredis配置如下所示
db0: new Redis({
sentinels: endpoints,
name: REDIS_SENTINEL_MASTER_NAME,
db: 0
}),
db1: new Redis({
sentinels: endpoints,
name: REDIS_SENTINEL_MASTER_NAME,
db: 1
}),
sub: new Redis({
sentinels: endpoints,
name: REDIS_SENTINEL_MASTER_NAME,
db: 0
}),
pub: new Redis({
sentinels: endpoints,
name: REDIS_SENTINEL_MASTER_NAME,
db: 0
})
其中senitelname是mymaster
你需要提供更多的細節。使用'redis-cli'會發生什麼,它工作正常嗎?你在'data'中獲得了什麼值?你確定'node-redis'會返回整數0嗎?它可能與'cli'不同。 – Russbear
@Russbear對不起,我沒有使用node-redis,使用ioredis並使用redis-cli,它的返回值爲1 – RRP
您需要提供更多關於從err和data獲得的值的信息, CLI正在給你,你的'ioredis'配置是什麼樣的。 – Russbear