我正在使用群集redis。我想要做的就是为有限集添加新值。
这是我的代码:
$redis->watch(keyMem)
$count = $redis->scard($keyMem);
if($count < $limit)
$redis->multi()
->sadd($keyMem, $value)
->exec();
我得到了:
“无法通过群集连接使用'监视'。”
答案 0 :(得分:0)
我找不到任何解决方案,我编写了自己的锁。
$keyLock = $keyMem."lock";
$start_time = microtime();
while(true){
if($redis->setnx($keyLock, "1")){
$count = $redis->scard($keyMem);
if(i$count < $limit){
$r = $tredis->sadd($keyMem, $value);
}
$redis->del($keyLock);
}
else{
if(microtime() - $start_time > 0.05){
$tredis->del($keyLock);
}
}
}