当前位置:首页 > PHP > 正文内容

php redis事务

高老师5年前 (2019-11-01)PHP1451

概念请参考w3school文章: redis watch ,redis exec (看完基本秒懂)

(1)基本事务:

//连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

//开启事务
$redis->multi();

//操作key
$redis->flushAll();
$redis->incr('user_id');
$redis->incr('user_id');
$redis->incr('user_id');
$ping = $redis->ping();

//执行事务
$result = $redis->exec();
if ($result)
{
    echo '执行事务成功' . PHP_EOL;
}
else
{
    echo '执行事务失败' . PHP_EOL;
}

//打印执行事务可以看到所有的执行结果
var_dump($result);

输出结果:

array(5) {
  [0]=>
  bool(true)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  string(5) "+PONG"
}

(2).监视key执行事务(Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断)

<?php
exec('chcp 65001');

//连接本地的 Redis 服务
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

//清空redis
$redis->flushAll();

//操作的redisKey
$key = 'user_id';

//监视key
$redis->watch($key);

//开启事务
$redis->multi();

//睡眠点时间,手动开一个终端也去操作这个key
sleep(60);

//操作key
$redis->incr($key);

//执行事务
$result = $redis->exec();
if ($result)
{
    echo '执行事务成功' . PHP_EOL;
}
else
{
    echo '执行事务失败' . PHP_EOL;
}

//打印执行事务可以看到所有的执行结果
var_dump($result);

执行结果:

执行事务失败
bool(false)

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/110.html

分享给朋友:

“php redis事务” 的相关文章

PHP跨域问题最佳解决方案

PHP跨域问题最佳解决方案

1、允许单个域名访问指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:header('Access-Control-Allow-Origin:http://client....

php调用 java webservice接口

php调用 java webservice接口

php调用Webservice基本语法如下:$url ='xxxxxxx.cn'  //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...

php 将数组键值转为变量

php 将数组键值转为变量

<?php $data=array('a'=>1,'b'=>2,'c'=>3,'d'=>4); extract($data); var_dump($a,$b,$c,$d); ?>在人人商城中捡到的...

Thinkphp Call Stack,PHP调用栈Call Stack的获取

Thinkphp Call Stack,PHP调用栈Call Stack的获取

ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...

全方位认识PHP的SESSION

全方位认识PHP的SESSION

【一】.介绍session由于HTTP是无状态的请求,创建一个会话需要保持必须需要身份标识。当用户第一次访问,PHP会为用户创建一个唯一的sessionid,并将sessionid通过cookie发送给浏览器,并在服务器的临时文件创建一个以sessionid为名的文件用来保存这个sessionid保...

php json_encode 使用注意

php json_encode 使用注意

参数中包含gb2312的字符串,返回结果是false或者null(不同PHP版本具有差异性)代码:<?php $dbms = 'mysql'; $host = '192.168.8.8'; $dbName =&n...