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」として返されます。
さらに情報を追加する
2回目の試行で値を確認すると、err=nullおよびdata=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 です