在redis中优化频繁操作redis产生多次链接引发的网络延时
来源:互联网 发布:东芝移动硬盘 mac 加密 编辑:程序博客网 时间:2024/06/08 07:46
原文链接:http://ivhong.com/?p=173
在程序中可能存在频繁操作redis,每次操作redis都需要产生网络链接,虽然每次操作的返回处理非常快(几十甚至几毫米),但是非常多的redis操作在超高的并发请求中,还是有必要优化的,那么php中如何避免产生多次操作,每次都链接一次redis呢?其实和上篇文章的方法是一样,仅仅是把 multi 的参数指定为Redis::PIPELINE,但是这样操作禁止了原子性操作,代码如下:
<?php$redis = new \Redis(); $redis->connect('127.0.0.1', 6379);$key = 'watchkey';$redis->watch($key);//仅仅这里的参数不同$redis->multi(Redis::PIPELINE);sleep(3);$redis->incr($key);$redis->get($key);$r = $redis->exec();var_dump($r);function getRedis(){ $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); return $redis;}
和上次一样,连着执行3次看看结果:
发现 watchkey 被执行了3次,watch 并没有起到作用。
这样的操作仅仅确保进程之间不会产生数据冲突,才能使用这个方法。
阅读全文
0 0
- 在redis中优化频繁操作redis产生多次链接引发的网络延时
- 优化 shiro 多次调用 redis 的问题
- 在Java中操作redis
- 在Java中对Redis的缓存操作
- 在Java中对Redis的缓存操作
- 在Java中对Redis的缓存操作
- redis漏洞引发的入侵
- 在c#中使用servicestackredis操作redis
- 在c#中使用servicestackredis操作redis
- 如何在Erlang中操作Redis?
- 在c#中使用servicestackredis操作redis
- 在c#中使用servicestackredis操作redis
- Web项目中引入Redis引发的错误信息
- 【Redis】深入浅出Redis(三)——在项目中使用Jedis对Redis操作
- redis在JAVA端的操作
- 使用数据库审核跟踪数据库结构变化,使用的是格林尼治时间。可在频繁操作的库中,为什么会产生大量锁等待啊
- PHP 中操作 Redis
- redis延时监控
- JAVA运算符\操作符
- Tesseract ocr文字识别
- Torch load model from gpu to cpu, so can convert to pytorch
- 排序--冒泡排序和快速排序(java)
- 使用yii AR 完成单个表的CURD操作
- 在redis中优化频繁操作redis产生多次链接引发的网络延时
- javascript/js 获取当前页面地址栏数据
- tensorflow进行MNIST手写数字识别-CNN
- windows下MongoDB的安装及配置
- docker swarm
- CodeForces
- MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效。
- 算法(排序)加 二分查找
- 字符设备驱动,平台设备驱动,设备驱动模型,sysfs的比较