Redis的pipeline(管道),PHP使用pipeline

pipline

redis的pipeline(管道)功能在命令行中沒有,但redis是支持pipeline的,而且在各個語言版的client中都有相應的實現。pipline可以打包n條命令,一次性傳輸到服務端,然後再一次性按順序返回命令的執行結果。

需要注意的是集羣模式對於pipline不太友好,因爲pipline要操作的key可能在不同的哈希槽上,此時就需要進行請求的轉發,但是這是與pipline的思想相違背的,所以集羣模式下不太支持使用pipline的操作。

如果你操作的是字符串類型那麼可以用mset和mget,key越多,mset和mget相對於pipeline越快。

PHP使用

$users = [1, 2, 3, 4];
$predis = app('redis')->connection()->client();
$user_values = $predis->pipeline(function ($pipe) use ($users) {
        foreach ($users as $val) {
            $pipe->get('test' . $val);
        }
});
dump($user_values);

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章