关于Swoole安装hiredis无法使用异步redis客户端问题

关于Swoole安装hiredis无法使用异步redis客户端问题

问题描述

根据swoole官方文档安装hiredis并重新编译swoole加入–enable-async-redis后依然无法使用redis扩展。编写并运行异步redis文件,会有如下错误提示:

Fatal error: Uncaught Error: Class 'swoole_redis' not found in xxx
Fatal error: Uncaught Error: Class 'Swoole\Redis' not found in xxx

问题原因

这是由于从版本4.3.0开始,异步客户端和API被移到单独的PHP扩展 swoole_async 了。
官方文档有说明:传送门
在这里插入图片描述

解决方案

  • 安装swoole异步async扩展
    git clone https://github.com/swoole/ext-async.git
    cd ext-async
    phpize //注意,如果安装了多个版本的PHP,这里phpize应该是当前使用PHP版本对应的phpize全路径
    ./configure
    make -j 4
    sudo make install
    
  • 增加扩展配置到php.ini
    vim /usr/local/php/lib/php.ini
    extension=swoole_async.so
    
  • 测试异步redis是否可用(异步模块(redis等)只能在cli模式下使用,官方文档有说明)
    <?php
    //$redisClient = new swoole_redis;
    $redisClient = new Swoole\Redis;
    $redisClient->connect('127.0.0.1', 6379, function(swoole_redis $redisClient, $result){
            echo 'connect:'.PHP_EOL;
            var_dump($result);
    });
    echo 'start';
    
    执行该文件,结果:
    在这里插入图片描述
    此时说明,swoole异步模块扩展已经安装完成。
********************只要思想不滑坡,办法总比困难多********************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值