【问题标题】:check-and-set action on redis cluster php对 redis 集群 php 的检查和设置操作
【发布时间】:2015-03-20 10:27:43
【问题描述】:

我正在使用集群的 redis。我想做的就是为有限的集合添加一个新值。

这是我的代码:

$redis->watch(keyMem)
$count = $redis->scard($keyMem);
if($count < $limit) 
$redis->multi()
  ->sadd($keyMem, $value)
  ->exec();

我得到:

“不能对连接集群使用‘监视’。”

【问题讨论】:

    标签: php redis cluster-computing predis


    【解决方案1】:

    我找不到任何解决方案,我编写了自己的锁。

    $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);
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      • 2016-05-22
      • 2021-07-03
      • 1970-01-01
      • 2016-01-19
      相关资源
      最近更新 更多