异步Redis客户端

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

可能遇到的问题

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

重新编译安装swoole即可


  • ____

    哈哈,我来抢沙发

  • farss

    Swoole\Redis::__call(): redis client is waiting for response

    不能同时执行redis方法

  • 小谢

    /download/php/swoole-1.8.6/swoole_redis.c(370) : Freeing 0x02EBD770 (23 bytes), script=/www-root/uarein_test/api/www/index.php === Total 1 memory leaks detected ===

    突然遇到这样的问题,好像是内存泄漏,怎么办。centos6.5 阿里云的。。。php是5.5的 gcc 4.4

  • cjj8110

    如果 libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0 可指定 --enable-async-redis=/usr/local

  • 青

    PHP Fatal error: Uncaught Error: Class 'swoole_redis' not found

  • Enlife_Runner

    安装完 swoole 后出现 libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0,缺少动态库,也可以这样 1. vim /etc/ld.so.conf 2. 添加 /usr/local/lib 3. sudo ldconfig

  • 队长

    hiredis 也安装, 编译swoole 的时候 也加了--enable-async-redis,php -m 也能看到 swoole ,但是就是报:PHP Fatal error: Uncaught Error: Class 'swoole_redis' not found

  •  HI

    libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0 的解决方法 #在最后一行添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

  •  HI

    用vi打开当前用户的bash_profile

    vi ~/.bash_profile

    在最后一行添加

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

  • 小牛

    Swoole-1.9.23 版本的,编译redis时都正常,但还是出现问题 PHP Fatal error: Class 'Swoole\Redis' not found in ......

  • sven

    Class 'swoole_redis' not found的解决办法是在/etc/ld.so.conf.d/ 目录下增加 libc.conf文件, 内容为"/usr/local/lib", 然后执行ldconfig,再执行教程中的swoole安装过程(--enable-async-redis后面不要加路径了)。我用本方法解决了这个问题。

  • hulk

    PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/swoole.so' - libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line 0

  • sz-jack

    mac 找不到ldconfig

  • ╰︶毛毛、

    mac 找不到ldconfig +1