设为首页 收藏本站
查看: 2260|回复: 0

[经验分享] Linux的企业-Redis 作 mysql 的缓存服务器

[复制链接]

尚未签到

发表于 2018-11-3 10:23:05 | 显示全部楼层 |阅读模式
  一.配置环境
  redhat6.5
  server1:lump  php模块   172.25.50.1
  server2:redis  172.25.50.2
  server3:mysql  172.25.50.3 DSC0000.png
  二.安装 lnmp 环境
  1.安装php
DSC0001.png

DSC0002.png

  2.配置nginx
DSC0003.png

DSC0004.png

DSC0005.png

DSC0006.png

  3.配置nginx php默认发布文件
DSC0007.png

  4.启动nginx和php服务
DSC0008.png

DSC0009.png

  5.再server3安装mysql-server
DSC00010.png

  三.在server2安装redis
  1.安装
DSC00011.png

DSC00012.png

DSC00013.png

  2.配置,绑定所有端口
DSC00014.png

  3.启动服务
DSC00015.png

  四.安装 php 的 redis 扩展
  1.安装模块
DSC00016.png

  linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块。使用phpize脚本安装php扩展模块的好处:在安装php时没有安装的扩展,可以在以后随时安装上,且不需要重新安装PHP。
DSC00017.png

DSC00018.png

DSC00019.png

  2.配置模块
DSC00020.png

  加载 redis 模块
DSC00021.png

  3.查看php是否加载redis模块并重启服务
DSC00022.png

DSC00023.png

DSC00024.png

  五.测试test.php网页
  1.将下面的test.php页面放到nginx默认发布目录下
DSC00025.png

DSC00026.png

  2.在server3上启动mysql,并创建授权redis用户
DSC00027.png

  3.将test测试网页的数据库传给server3上的mysql,并将数据导入mysql
DSC00028.png

  server3:  导入test测试页数据   mysql < test.sql
DSC00029.png

DSC00030.png

  4.测试
DSC00031.png

  从server2的redis读取数据
DSC00032.png

  在server3上的数据库修改数据
DSC00033.png

  在redis上数据是不能及时改变的,还读的是缓存,只能修改,才能改变
DSC00034.png

DSC00035.png

DSC00036.png

  六.触发器gearman 实现数据同步
  到这里,我们已经实现了 redis 作为 mysql 的缓存服务器,但是如果更新了 mysql,redis中仍然会有对应的 KEY,数据就不会更新,此时就会出现 mysql 和 redis 数据不一致的情况。所以接下来就要通过 mysql 触发器将改变的数据同步到 redis 中。配置 gearman 实现数据同步
  Gearman 是一个支持分布式的任务分发框架:Gearman Job Server: Gearman 核心程序,需要编译安装并以守护进程形式运行在后台。Gearman Client:可以理解为任务的请求者。Gearman Worker:任务的真正执行者,一般需要自己编写具体逻辑并通过守护进程方式运行,Gearman Worker 接收到 Gearman Client 传递的任务内容后,会按顺序处理。
  大致流程:下面要编写的 mysql 触发器,就相当于 Gearman 的客户端。修改表,插入表就相当于直接
  下发任务。然后通过 lib_mysqludf_json UDF 库函数将关系数据映射为 JSON 格式,然后在通过 gearman-mysql-udf 插件将任务加入到 Gearman 的任务队列中,最后通过redis_worker.php,也就是 Gearman 的 worker 端来完成 redis 数据库的更新。
  1.安装gearmand模块
DSC00037.png

DSC00038.png

  2.安装 php 的 gearman 扩展
DSC00039.png

DSC00040.png

DSC00041.png

  3.配置gearman模块
DSC00042.png

DSC00043.png

  4.重启php服务,gearman已经安装
DSC00044.png

  七.安装 lib_mysqludf_json模块
  lib_mysqludf_json UDF 库函数将关系数据映射为 JSON 格式。通常,数据库中的数据映
  射为 JSON 格式,是通过程序来转换的
  
  1.server3安装mysql-devel
DSC00045.png

  2.解压安装lib_mysqludf_json库函数
DSC00046.png

  gcc编译lib_mysqludf_json库 DSC00047.png
DSC00048.png

  3.将lib_mysqludf_json.so 模块拷入mysql的模块下
DSC00049.png

  
  4.查看 mysql 的模块目录并注册 UDF 函数
DSC00050.png

  八.安装 gearman-mysql-udf插件
  这个插件是用来管理调用 Gearman 的分布式的队列
  1.安装gearman-mysql-udf模块和包依赖
DSC00051.png

  注:如果configure报错,libgearman版本低,安装高版本的即可
  configure: error: At least version 0.33 of libgearman is required for gearman-mysql-udf
DSC00052.jpg

  [root@server3 ~]# yum install libgearman-1.1.8-2.el6.x86_64.rpm libgearman-devel-1.1.8-2.el6.x86_64.rpm
  查看插件
DSC00053.png

  2.注册 UDF 函数 DSC00054.png
  3.指定 gearman 的服务信息
DSC00055.png

  九.编写 gearman 的 worker 端并后台启动
DSC00056.png

DSC00057.png

DSC00058.png

DSC00059.png

  十.编写 mysql 触发器(根据实际情况编写) ,mysql.sql
  1.并导入数据库 mysql < mysql.sql
DSC00060.png

  
  2.查看触发器
DSC00061.png

  
  
  十一.测试
  在server3上进入到数据库更新数
DSC00062.png

DSC00063.png

  server查询:
DSC00064.png

DSC00065.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-630139-1-1.html 上篇帖子: Redis脚本 下篇帖子: 安装 PHP-Redis 模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表