Coroutine\Redis [编辑本页]

启用协程Redis客户端


  • 需要安装一个第三方的异步Redis库hiredis
sudo make
sudo make install
sudo ldconfig
  • 需要在编译swoole时增加--enable-coroutine,--enable-async-redis来开启此功能。

使用示例


$redis = new Swoole\Coroutine\Redis();
$redis->connect('127.0.0.1', 6379);
$val = $redis->get('key');

defer特性


请参考并发Client一节。subscribe pSubscribe无法用于defer(true)的情况。


  • reluctance_virus

    https://github.com/redis/hiredis

    unzip hiredis-master.zip # 见附件 cd hiredis-master/ make && make install

    解决报错

    ln -sf /usr/local/lib/libhiredis.so.0.13 /usr/lib64/libhiredis.so.0.13

  • reluctance_virus

    2.0版本: # php5.6环境支持 phpize && ./configure --with-php-config=/usr/bin/php-config --enable-coroutine --enable-async-redis 如果报错undefined symbol: zend_create_execute_data_from_op_array in Unknown on line 说明php版本过低, 请升级php版本为5.6

    1.8.5版本: # php5.5环境支持 phpize && ./configure --with-php-config=/usr/bin/php-config --enable-async-redis --enable-async-mysql

    1.8.3版本: # php5.5环境支持 phpize && ./configure --with-php-config=/usr/bin/php-config --enable-async-redis

    service php-fpm restart

  • reluctance_virus

    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm php5.5环境安装 yum --enablerepo=remi,remi-php55 install php-fpm php-common php-devel php-mysqlnd php-mbstring php-mcrypt php-ssh2 php-pdo php-pdo_mysql php-redis php-zip php-curl php-hash php-json php-libevent php-mongo php-pdo_sqlite php-zlib php-simplexml php-memcache php-memcached php5.6环境安装 yum --enablerepo=remi,remi-php56 install php-fpm php-common php-devel php-mysqlnd php-mbstring php-mcrypt php-ssh2 php-pdo php-pdo_mysql php-redis php-zip php-curl php-hash php-json php-libevent php-mongo php-pdo_sqlite php-zlib php-simplexml php-memcache php-memcached

  • LLLokAu

    一启动就提示 PHP Fatal error: Class 'Swoole\Coroutine\Redis' not found,请问怎么才能解决这问题? hiredis已经安装好了,编译也没有少参数。

  • 小菜

    协程Redis怎么取消订阅?貌似没有unsubscribe这个方法

  • copy

    同问 我也遇到了这种情况。swoole使用的是2.0.6版本 。hiredis 使用的是0.13.3 版本

  • 高秋亭-北京展程科技有限

    安装完hiredis 执行ldconfig 再编译呢? 我这样执行就好了

  • 摆渡人

    之前直接安装编译的swoole,然后看到这里后,先执行的make clean,然后在编译的时候加上了哪两个参数,最后编译的hiredis,最后出现PHP Fatal error: Uncaught Error: Class 'Swoole\Coroutine\Redis' not found in /home/wwwroot/tp5/ceshi.php:2

  • 摆渡人

    已经解决,swoole版本错了,应该是2.0版本以上的