swoole 高手之路
  • Introduction
  • 简介
  • 入门安装
    • php7 安装
    • swoole 安装
    • ide 提示工具安装
  • 原理概念
    • 需要掌握的基础知识
    • IO 模型
    • TCP 与 UDP
    • TCP 粘包处理
    • 同步 与 异步
    • 进程 与 线程
    • Swoole进程结构
    • swoole的运行模式
    • swoole编程注意事项
    • Socket原理
    • Libevent
  • swoole 基础
    • 网络通信引擎
      • 创建TCP服务器
      • 创建TCP客户端
      • 创建UDP服务器
      • 创建HTTP服务器
      • 创建websocket服务器
    • 异步非堵塞IO
      • 异步文件系统IO
      • 异步Mysql
      • 异步Redis
      • 异步Http/WebSocket客户端
    • 进程 内存 协程
      • swoole进程管理模块
      • swoole 内存操作模块
      • swoole 协程
    • Task进程异步任务
    • 毫秒定时器
  • swoole 高级特性
    • 心跳检测
    • 守护进程、信号和平滑重启
    • mysql连接池
  • swoole 其他
    • nginx+swoole
    • 结合传统框架
  • swoole RPC调用
  • 附录 : 其他资料
    • Zan Extension
    • 资料
Powered by GitBook
On this page
  • 资料
  • 附录:安装redis服务器

Was this helpful?

  1. swoole 基础
  2. 异步非堵塞IO

异步Redis

Previous异步MysqlNext异步Http/WebSocket客户端

Last updated 5 years ago

Was this helpful?

建议先阅读官方文档章节

1.编译安装hiredis库

wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
tar  -zxf  v0.13.3.tar.gz
cd  hiredis-0.13.3
make -j
make install

2.重新编译swoole扩展,编译swoole时,在configure指令中加入--enable-async-redis

cd  swoole-2.2.0
./configure  --enable-async-redis
  make clean       
  make -j
  make install

查看是否编译成功

php --ri swoole

出现此条表示编译正确async redis client => enabled

注意:

执行php-m发现swoole消失或者是通过php --ri swoole没有显示async redis client,或者报错,做一下操作

vi ~/.bash_profile
在最后一行添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
source ~/.bash_profile

示例异步redis发布订阅模式

<?php
$options['timeout'] = 1.5;

$redis=new swoole\redis($options);

$redis->on('close',function ($redis){

});

//redis发布订阅
$redis->on('message',function ($redis,$message){
    //var_dump($message);
    //订单处理
    //入库操作
    //异步的守护进程

});

$redis->connect('127.0.0.1',6379,function ($redis,$res){

        if($res==false){
            echo $redis->errMsg;
        }
        $redis->subscribe('test'); //频道订阅不阻塞
        echo '异步';
});

资料

附录:安装redis服务器

2 yum 安装redis

$ yum install redis

3 配置密码

Redis的配置文件默认在/etc/redis.conf,找到如下行:

#requirepass myPassword

去掉前面的注释,并修改为所需要的密码:

requirepass myPassword(其中myPassword就是要设置的密码)

(subscribe/psubscribe的区别在于是否可以模糊匹配)

1 EPEL源安装 这个软件包会自动配置yum的软件仓库, 参见:

异步Redis客户端
Redis 发布订阅
redis 订阅(subscribe/psubscribe)和发布 (publish)
EPEL源-是什么?为什么安装?