Swoole教程
Swoole实例
Swoole Redis Server实例
Swoole Redis\Server异步客户端介绍
Swoole-1.8.14版本增加一个兼容Redis服务器端协议的Server框架,可基于此框架实现Redis协议的服务器程序。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库实现。Swoole提供了__call
魔术方法,来映射绝大部分Redis指令。
编译安装hiredis
使用Redis客户端,需要安装hiredis库。下载hiredis
源码后,执行
make -j
sudo make install
sudo ldconfig
- hiredis下载地址:https://github.com/redis/hiredis/releases
启用异步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);
});
});
Swoole实例相关
Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于epoll/kqueue事件循环,是全异步非阻塞的;业务逻辑部分使用多进程同步阻塞方式来运行,这样既保证了Server能够应对高并发和大量TCP连接,又保证业务代码仍然可以简单的编写。Swoole与Node.js相比更强大,支持同步/异步、多进程并行,Swoole提供了进程生命周期管理、内存保护机制,开发者无需考虑底层细节,专注于业务逻辑和功能的开发。
主页 | https://www.swoole.com/ |
源码 | https://github.com/swoole/swoole-src |