redis 事物要么成功要么失败

Randy
  • 911

redis 目前不支持 事物要么成功 要么失败, 请问下有没有现成的解决办法呢??

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->select(15);
$object= $redis->multi() ; 
try{
    $object->set('key1', 'val1') ; //我想判断这个是否执行成功 咋判断呢??
    $object->set('key2' , 'val2');//我想判断这个是否执行成功 咋判断呢??
    if( 上面 2 个都执行成功 ){
        $object->exec();
    }
    else{
        throw new Exception("抛出异常");
    }
    
}catch(Exception $e){
    $object->discard();
    echo 'Message: ' .$e->getMessage();
}

上面的代码

$object->set('key1', 'val1') ; 

这个返回的是一个对象 其实我想判断这个是否执行成功 然后 最终执行

$object->exec();

如果失败我直接抛出异常

回复
阅读 1.5k
2 个回答

抱歉,刚才看错了,没有看到multi

开事务的话可以按照文档的例子

clipboard.png

想知道有没有执行
先判断有没有
没有就set
有就直接返回

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏