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

php redis事务

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

概念请参考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可变变量的作用

<!doctype html> <html> <head> <meta charset="utf-8"> <title>demo</title> </head> <bod...

PHP模拟并发请求

PHP模拟并发请求

原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。文件1:curl.php<?php  $threads=500;//并发请求次数 $url='http://blog.cn/index.php?';...

 php监听事件,php触发事件

php监听事件,php触发事件

逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event {     /** &nbs...

php多进程实现任务管理器,定时执行任务,支持守护

php多进程实现任务管理器,定时执行任务,支持守护

主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /**  * 订单任务  */ class Order {    &n...

php执行慢原因查找

php执行慢原因查找

今天帮朋友查询wordpress执行超级慢的原因,特此记录开启fpm的慢日志,记录执行超过30秒的脚本request_slowlog_timeout = 30 slowlog = var/log/slow.log查看日志[23-May-2019 17...

PHP最快方式模拟curl,PHP最快爬虫模拟方法

PHP最快方式模拟curl,PHP最快爬虫模拟方法

有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...