概念请参考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)
xmlrpc协议是通过http请求xml数据进行通信。webservice中和它相同的是soap。soap调用的确很简单,但是创建wsdl太繁琐,效率低下。xmlrpc很好的解决这个问题。(1).创建xmlrpc服务端(求和函数api)function getSum($method,$ar...
最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...
当我想在一个进程中监听kill 和 kill -9命令报了这个错误。//监听kill pcntl_signal(SIGTERM, function () { posix_kill(0, SIGTERM); });...
自己的composer已经发布到packagist,但是无法使用composer require easy-task/easy-task来安装,只能在配置文件使用如下方式安装:"require": { "easy...
当我用ab进行对php socket代码进行并发测试出现问题,经过排查是我直接对客户端进行发送消息,没有先读取客户端消息造成的。 $text = "hello world" . PHP_EOL;...
/** * 设置进程标题 * @param string $title &nbs...