swoole redis 首先先安装redis 服务端

参考连接https://blog.csdn.net/hbh112233abc/article/details/54966407

环境介绍:我的服务器是阿里云的centos主机,php 7.0.14

1 安装和配置redis

参考方案 点击打开链接

1.1 下载redis

进入软件安装目录

[php] view plaincopy
  1. cd /usr/local/

下载最新版的redis

[php] view plaincopy
  1. wget  http://download.redis.io/redis-stable.tar.gz

1.2 编译安装

[html] view plaincopy
  1. tar xvzf redis-stable.tar.gz
[html] view plaincopy
  1. cd redis-stable
[html] view plaincopy
  1. make
[html] view plaincopy
  1. make install

可能遇到的问题

[html] view plaincopy
  1. 如果make出现了异常:
  2. 1)make[2]: cc: Command not found
  3. 异常原因:没有安装gcc
  4. 解决方案:yum install gcc-c++
  5. 2)zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
  6. 异常原因:一些编译依赖或原来编译遗留出现的问题
  7. 解决方案:make distclean。清理一下,然后再make。
  8. 在make成功之后,需要make test 在make test 出现异常
  9. 1) couldn't execute "tclsh8.5": no such file or directory
  10. 异常原因:没有安装tcl
  11. 解决方案:yum install -y tcl。

redis 功能说明

[html] view plaincopy
  1. make命令执行完成后,会在src目录下生成5个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump,它们的作用如下:
  2. redis-server:Redis服务器的daemon启动程序
  3. redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  4. redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  5. redis-check-aof:更新日志检查
  6. redis-check-dump:用于本地数据库检查

1.3 redis 配置

[html] view plaincopy
  1. cp redis-server /usr/local/bin/
  2. cp redis-cli /usr/local/bin/
  3. 然后新建目录,存放配置文件
  4. mkdir /etc/redis
  5. mkdir /var/redis
  6. mkdir /var/redis/log
  7. mkdir /var/redis/run
  8. mkdir /var/redis/6379
[html] view plaincopy
  1. 在redis解压根目录中找到配置文件模板,复制到如下位置。
  2. cp redis.conf /etc/redis/6379.conf通过vim命令修改
  3. daemonize yes
  4. pidfile /var/redis/run/redis_6379.pid
  5. logfile /var/redis/log/redis_6379.log
  6. dir /var/redis/6379
  7. 最后运行redis:
  8. redis-server /etc/redis/6379.conf
[html] view plaincopy
  1. netstat –atln

查看端口状态

有了127.0.0.1:6379这个说明redis已经成功运行了.

1.4 redis操作尝试

[html] view plaincopy
  1. redis 127.0.0.1:6379> set foo bar
  2. OK
  3. redis 127.0.0.1:6379> keys *
  4. 1) "foo"
  5. redis 127.0.0.1:6379> get foo
  6. "bar"
  7. redis 127.0.0.1:6379> del foo

2 安装php_redis扩展

扩展下载地址: https://github.com/phpredis/phpredis/tree/php7

下载压缩包

[html] view plaincopy
  1. wget https://github.com/phpredis/phpredis/archive/php7.zip

解压

[html] view plaincopy
  1. unzip php7.zip

编译安装

[html] view plaincopy
  1. cd phpredis-php7
  2. /usr/bin/phpize
  3. ./configure --with-php-config=/usr/bin/php-config
  4. make
  5. make install

备注说明: 请注意 phpize和php-config根据个人安装的php目录地址不一样,可以用find命令查看他们所在的地址

[html] view plaincopy
  1. find / -name phpize
  2. find / -name php-config

配置

在php扩展配置目录里添加 redis.ini

通过phpinfo可以查看php的扩展配置目录

如上图,我的是在/etc/php.d/目录下,所以创建的redis.ini也在该目录下即可

redis.ini中写入

[html] view plaincopy
  1. ;Enable redis extension module
  2. extension=redis.so

重启php-fpm

[html] view plaincopy
  1. service php-fpm restart

再次查看phpinfo就可以看到redis扩展已经有了

然后我们就可以愉快的使用redis了

=============================分割线===============================

我编译的代码如下

2771  2018-05-03 10:16:51 wget  http://download.redis.io/redis-stable.tar.gz   
 2772  2018-05-03 10:16:56 ls
 2773  2018-05-03 10:17:03 which redis
 2774  2018-05-03 10:17:09 whereis redis
 2775  2018-05-03 10:17:19 tar -zxvf redis-stable.tar.gz 
 2776  2018-05-03 10:17:21 cd redis-stable/
 2777  2018-05-03 10:17:22 ls
 2778  2018-05-03 10:17:32 ls
 2779  2018-05-03 10:17:34 make
 2780  2018-05-03 10:19:01 make install
 2781  2018-05-03 10:19:14 ls
 2782  2018-05-03 10:19:17 cd src/
 2783  2018-05-03 10:19:17 ls
 2784  2018-05-03 10:19:26 ./redis-server

运行结果如下

这个时候swoole 需要安装hredis

参考连接 https://wiki.swoole.com/wiki/page/p-redis.html

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

可能遇到的问题

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即可

这里我遇到的问题就是 这些都执行完后  php --ri swoole没有显示async redis client

于是执行 

然后重新编译swoole

=============================分割线===============================

我的编译如下

2732  2018-05-03 09:28:33 wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
 2733  2018-05-03 09:28:38 ls
 2734  2018-05-03 09:28:48 tar -zxvf v0.13.3.tar.gz 
 2735  2018-05-03 09:28:51 ls
 2736  2018-05-03 09:28:54 cd hiredis-0.13.3/
 2737  2018-05-03 09:28:55 ls
 2738  2018-05-03 09:29:11 make -j
 2739  2018-05-03 09:29:18 make install

2740  2018-05-03 09:29:28 sudo ldconfig

中间20来行是没啥用的

2763  2018-05-03 09:36:08 ./configure --enable-async-redis
 2764  2018-05-03 09:36:12 make clean
 2765  2018-05-03 09:36:15 make -j
 2766  2018-05-03 09:37:21 make install
 2767  2018-05-03 09:37:37 php -m
 2768  2018-05-03 09:37:44 php -m | grep swoo
 2769  2018-05-03 09:37:53 serivce php-fpm restart
 2770  2018-05-03 09:38:00 serivce php-fpm restart
 2771  2018-05-03 09:38:05 service php-fpm restart
 2772  2018-05-03 09:38:08 php -m | grep swoo
 2773  2018-05-03 09:38:19 php --ri swoole
 2774  2018-05-03 09:38:53 php --ri swoole | grep redis
 2775  2018-05-03 09:39:03 vi ~/.bash_profile
 2776  2018-05-03 09:39:23 source ~/.bash_profile
 2777  2018-05-03 09:39:35 ./configure --enable-async-redis
 2778  2018-05-03 09:41:05 ./configure --enable-async-redis --with-php-config=/usr/local/php/bin/php-config
 2779  2018-05-03 09:44:18 make && make instatll
 2780  2018-05-03 09:44:29  make install
 2781  2018-05-03 09:44:36 history
 2782  2018-05-03 09:44:49  php --ri swoole
 2783  2018-05-03 09:45:00  php --ri swoole | grep redis
 2784  2018-05-03 09:45:52 ls
 2785  2018-05-03 09:46:53 ./configure --enable-async-redis --with-php-config=/usr/local/php/bin/php-config
 2786  2018-05-03 09:47:00 make clean
 2787  2018-05-03 09:47:07 make -j
 2788  2018-05-03 09:47:59 make install
 2789  2018-05-03 09:48:16 php --ri swoole
 2790  2018-05-03 09:48:28 make 
 2791  2018-05-03 09:48:31 make install

2792  2018-05-03 09:49:12 php --ri swoole

最后出现这个就是好的了

最后结果

redis.php

<?php$client = new swoole_redis;
$client->connect('127.0.0.1', 6379, function (swoole_redis $client, $result) {echo "connect\n";var_dump($result);$client->set('key', 'swoole', function (swoole_redis $client, $result) {var_dump($result);$client->get('key', function (swoole_redis $client, $result) {var_dump($result);$client->close();});});
});?>

启用redis客户端查看下结果

swoole redis相关推荐

  1. swoole redis mysql_教你使用swoole监听redis数据

    swoole如何监听redis数据? Laravel使用swoole监听redis 开始之前,请先确保redis已经正确安装,并正常运行. Laravel代码 在App\Events目录下新建Redi ...

  2. swoole+redis(websocket聊天室demo)

    websocket是不同于http的另外一种网络通信协议,能够进行双向通信,基于此,可开发出各种实时通信产品,我简单做了个聊天室demo,顺便分享一下. PHP的swoole扩展,正如作者所说,是PH ...

  3. php swoole编译,php+swoole+redis源码编译安装

    tar -zxvf php-7.2.4.tar.gz cd php-7.2.4 ./configure --prefix=/usr/local/php make && make ins ...

  4. php使用redis消息队列swoole,swoole+Redis实现实时数据推送

    /** * *************************************** *            单进程保护                 * * *************** ...

  5. tp5 童攀_TP5.1+swoole+redis+nginx实战开发B2B2C多商户商城系统

    {getUnitName} 免费 {getTaskName} 剩余观看时长:{watchLimitRemaining} 回放 {activityStartTimeStr} 正在直播中 直播结束 {ac ...

  6. php mysql朋友圈设计_CoffeePHP社区 模仿微信朋友圈的逻辑(SWOOLE+REDIS+PHP+MYSQL实现消息推送)...

    CREATE TABLE `cn_friends_circle` ( `fc_id` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMEN ...

  7. swoole单台并发php,php swoole 并发多少?

    智慧大石 HttpServer$serv = new Swoole\Http\Server("127.0.0.1", 9502);$serv->on('Request', f ...

  8. php sf框架,GitHub - YanCastle/sf: php swoole framework

    #碳素云基于Swoole的服务端框架 ##功能 自动Session管理,通过集成SessionHandler来实现Session管理或通过session函数扩展实现 集成Model模型管理,移植TP的 ...

  9. swoole快速上手

    文章目录 第一 安装 第二 配置 第三 快速使用 1. 创建tcp服务器 2. 创建udp服务器 3. 创建web服务器 4. 创建WebSocket服务器 4.1 什么是WebSocket? 4.2 ...

最新文章

  1. 并发编程之Java内存模型
  2. eclipse安装SVN插件报错Unable to connect
  3. c#以文件流的形式输出xml(可以解决内存溢出)-XmlTextWriter
  4. 进程线程协程对比(通俗)
  5. 如何建议一个数据库内的定时任务
  6. math.hypot java_Java Math hypot()用法及代码示例
  7. Java中swing使用ImageIcon类添加图片
  8. linux redis集群工具,Redis集群部署及常用的操作命令
  9. stm32中的CAN通讯列表模式配置解析与源码
  10. 实战:Gateway API-2022.2.13
  11. 国考计算机及其应用科目,2018国家公务员考试专业科目考试大纲(计算机类)
  12. 计算机组成原理——第4章 指令系统
  13. 写能执行cmd命令的bat文件
  14. 国产开源优秀新一代MPP数据库StarRocks入门之旅-数仓新利器(上)
  15. python3.8 百度网盘下载
  16. 长虹g2958进入总控php是什么,长虹G2958型彩电总线故障检修一例
  17. flash特效原理 图片滑动放大效果 2
  18. PL/SQL之块结构和组成元素
  19. 安卓国际化开发中的时区问题之——夏令时,冬令时
  20. python语言复数类型实部不可以为0_day2

热门文章

  1. 吴恩达机器学习作业 6.支持向量机
  2. Quartz + Oracle 分布式Job实现
  3. 京瓷打印机1025默认管理员密码_京瓷2235默认登录密码_动漫台
  4. android shell强制删除文件夹_原来手机中的这些文件可以删除,难怪手机越用越卡!...
  5. 360解压电脑版安装包_迅捷pdf转换器电脑版安装包下载-迅迅捷pdf转换器安装包免费下载...
  6. 计算机游戏有哪几种,这些游戏你玩过几个? 你认为最经典的电脑游戏有哪些?
  7. python实现邮件发送功能
  8. [Oracle] 日期处理
  9. linux中怎么创建管道文件,Linux  管道文件
  10. java 祖父类_JAVA的XX.put中的put方法,是在哪个父类或祖父类中,详述父类链。