PHP中Redis管道
Redis是一個TCP服務器,支持請求/響應協議。 在Redis中,請求通過以下步驟完成:
客戶端向服務器發送查詢,并從套接字讀取,通常以阻塞的方式,用于服務器響應。
服務器處理命令并將響應發送回客戶端。
如果需要一次執行多個redis命令,以往的方式需要發送多次命令請求,有redis服務器依次執行,并返回結果,
為了解決此類問題,設計者設計出了redis管道命令:
客戶端可以向服務器發送多個請求,而不必等待回復,并最終在一個步驟中讀取回復,從而大大增加了協議性能
代碼示例:
redis版本是
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$pipe = $redis->multi(Redis::PIPELINE);
for ($i = 0; $i < 3; $i++) {
? ? $key = "key::{$i}";
? ? print_r($pipe->set($key, str_pad($i, 2, '0', 0)));
? ? echo PHP_EOL;
? ? print_r($pipe->get($key));
? ? echo PHP_EOL;
}
$result = $pipe->exec();
print_r($result);
參數說明:
Redis::MULTI或Redis::PIPELINE. 默認是 Redis::MULTI
Redis::MULTI:將多個操作當成一個事務執行
Redis::PIPELINE:讓(多條)執行命令簡單的,更加快速的發送給服務器,但是沒有任何原子性的保證
結果如下圖,可以看出每次執行set/get命令,并沒有被redis服務器立即執行,執行結果被放在了最后的result中
---------------------?
作者:陌上青苔?
來源:CSDN?
原文:https://blog.csdn.net/weijianfengyu/article/details/62891813?utm_source=copy?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
來源:https://blog.csdn.net/weijianfengyu/article/details/62891813
總結
以上是生活随笔為你收集整理的PHP中Redis管道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 使用管道提升写入的性能[pi
- 下一篇: 动态规划算法php,php算法学习之动态