Swoole Redis Server實(shí)例

2022-07-12 11:25 更新

Swoole Redis\Server異步客戶端介紹

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

Redis\Server不需要設(shè)置onReceive回調(diào)。實(shí)例程序:https://github.com/swoole/swoole-src/blob/master/examples/redis/server.php

可用的客戶端

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

編譯安裝hiredis

使用Redis客戶端,需要安裝hiredis庫(kù)。下載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

簡(jiǎn)單實(shí)例:

$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);
    });
});

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)