概念请参考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)
<?php //设置Cookies数组 setcookie('Datatype[a]', '1'); setcookie('Datatype[b]', '2'); set...
<?php //高先生简单验证码. //随机数 //为什么循环0-15的数字 //因为要实现最简单的字母和数字混搭 //16进制0-9 a-f //dechex 十进制转换为16进制 //创建一个四位的验证码. //$nmsg.  ...
第一步:服务端文件<?php $wsdlfile='webservice.wsdl'; ini_set('soap.wsdl_cache_enabled','0'); //关闭WSDL缓存 //001...
if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
开发com组件可以用c++,vc++,net,我比较熟悉net,演示用dnet(1).创建项目:启动vs2017,新建项目,选择Visual C# ->Windows桌面->类库通用windows(2). 修改Com项目:点击 项目->项目属性,再点击应用程序->程序集信息,...
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...