page contents

PHP实现redis的批量操作命令pipeline

如果有n条命令,就会消耗n次RTT。Redis的客户端和服务端可能部署在不同的机器上。

attachments-2020-03-eBqYHUAl5e78538ab37dc.jpg

redis执行一条命令有四个过程:发送命令、命令排队、命令执行、返回结果;整个过程是一个往返时间(RTT)。

如果有n条命令,就会消耗n次RTT。Redis的客户端和服务端可能部署在不同的机器上。在两地的数据传输受网络速度的影响,消耗n次的RTT会增加网络成本,这个和Redis的高并发高吞吐特性背道而驰。

use Redis;

class RedisTest
{
    const PORT = 6379;

    /**
     * redis对象
     */
    public $redis = null;

    public function __construct()
    {
        $this->redis = new Redis();
        $this->redis->connect('127.0.0.1', self::PORT);
    }
    
    public function testPipeline()
    {
        $str_constant = get_class($this->redis) . '::PIPELINE';
        if (!$str_constant) {
            return 'pipeline no exit';
        }
        
        return $this->redis->pipeline()->publish('test', 'pipe-info')->exec();
    }
}


attachments-2020-03-qWzhdeQA5e7853ad6c251.jpg

  • 发表于 2020-03-23 14:14
  • 阅读 ( 618 )
  • 分类:PHP开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章