×
Swoole 简介Swoole 包含模块Swoole 环境依赖Swoole 编译安装Swoole 基本实例创建Swoole 编程须知Swoole 优化内核参数调整Swoole server配置选项Swoole server事件回调函数Swoole server函数列表

Swoole实例

Swoole Server实例Swoole Client实例Swoole HttpServer实例Swoole WebSocket实例Swoole Redis Server实例Swoole MySQL实例Swoole AsyncIO实例Swoole Task实例Swoole 2.0 正式版发布,协程特性支持 PHP 7Swoole Coroutine协程支持

Swoole Redis Server实例


Swoole-1.8.14版本增加一个兼容Redis服务器端协议的Server框架,可基于此框架实现Redis协议的服务器程序。SwooleRedisServer继承自SwooleServer,可调用父类提供的所有方法。

RedisServer不需要设置onReceive回调。实例程序:https://github.com/swoole/swoole-src/blob/master/examples/redis/server.php

可用的客户端

  • 任意编程语言的redis客户端,包括PHP的redis扩展和phpredis库
  • Swoole扩展提供的异步Redis客户端
  • Redis提供的命令行工具,包括redis-cliredis-benchmark
注意:Swoole-1.8.0版本增加了对异步Redis客户端的支持,基于redis官方提供的hiredis库实现。Swoole提供了__call魔术方法,来映射绝大部分Redis指令。

编译安装hiredis

使用Redis客户端,需要安装hiredis库。下载hiredis源码后,执行

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 SwooleRedis;
$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 SwooleHttpClient('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);
    });
});

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)