Redis事务

事务

  • MULTI .... EXEC

redis> MULTI
OK
redis> SET key1 2
QUEUED 
redis> SET key2 3
QUEUED 
redis> EXEC
1) (integer) 1 
2) (integer) 2

  • WATCH

redis> SET key 1
OK
redis>WATCH key
OK
redis>MULTI
OK
redis> SET key 3
QUEUED
redis> EXEC
(nil)
redis> GET key
"2"
监听键后其他客户端将无法修改键值
当执行EXEC后,会取消对所有键的监控,才开始执行SET
所以在MULTI ... EXEC中key的操作是会被执行的
不执行事务也可以通过- UNWATCH来取消
(在PHP laravel5.2下 use Redis )

    public  function incrop($key)
    {
    if(Redis::exists($key)){
        Redis::watch($key);
        $v1 = Redis::get($key);
        $temp = $v1+1;
        Redis::multi();     
        $v2 = Redis::set($key,$temp);
        $list = Redis::exec();
        echo Redis::get($key)."<br>";
        echo $v2."<br>";
        dump($list);
    }else{
        echo "key is not exist!";
     }
    }

运行结果:

3
QUEUED
array:1 [
  0 => Status {#171 
    -payload: "OK"
  }
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值