Swoole Redis Server實例

2022-07-12 11:25 更新

Swoole Redis\Server異步客戶端介紹

Swoole-1.8.14版本增加一個兼容Redis服務器端協(xié)議的Server框架,可基于此框架實現(xiàn)Redis協(xié)議的服務器程序。Swoole\Redis\Server繼承自Swoole\Server,可調用父類提供的所有方法。

Redis\Server不需要設置onReceive回調。實例程序:https://github.com/swoole/swoole-src/blob/master/examples/redis/server.php

可用的客戶端

  • 任意編程語言的redis客戶端,包括PHP的redis擴展和phpredis庫
  • Swoole擴展提供的異步Redis客戶端
  • Redis提供的命令行工具,包括redis-cli、redis-benchmark
注意:Swoole-1.8.0版本增加了對異步Redis客戶端的支持,基于redis官方提供的hiredis庫實現(xiàn)。Swoole提供了__call魔術方法,來映射絕大部分Redis指令。

編譯安裝hiredis

使用Redis客戶端,需要安裝hiredis庫。下載hiredis源碼后,執(zhí)行

make -j
sudo make install
sudo ldconfig

啟用異步Redis客戶端

編譯swoole是,在configure指令中加入--enable-async-redis

./configure --enable-async-redis
make clean
make -j
sudo make install

簡單實例:

$redis = new Swoole\Redis;
$redis->connect('127.0.0.1', 6379, function ($redis, $result) {
    $redis->set('test_key', 'value', function ($redis, $result) {
        $redis->get('test_key', function ($redis, $result) {
            var_dump($result);
        });
    });
});

$cli = new Swoole\Http\Client('127.0.0.1', 80);
$cli->setHeaders(array('User-Agent' => 'swoole-http-client'));
$cli->setCookies(array('test' => 'value'));

$cli->post('/dump.php', array("test" => 'abc'), function ($cli) {
    var_dump($cli->body);
    $cli->get('/index.php', function ($cli) {
        var_dump($cli->cookies);
        var_dump($cli->headers);
    });
});

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號