一.配置环境
redhat6.5
server1:lump php模块 172.25.50.1
server2:redis 172.25.50.2
二.安装 lnmp 环境
1.安装php
2.配置nginx
3.配置nginx php默认发布文件
4.启动nginx和php服务
5.再server3安装mysql-server
三.在server2安装redis
1.安装
2.配置,绑定所有端口
3.启动服务
四.安装 php 的 redis 扩展
1.安装模块
linux系统中,php安装成功后,在bin目录下会生成一个名叫phpize的可执行脚本,这个脚本的用途是动态安装php扩展模块。使用phpize脚本安装php扩展模块的好处:在安装php时没有安装的扩展,可以在以后随时安装上,且不需要重新安装PHP。
加载 redis 模块
3.查看php是否加载redis模块并重启服务
五.测试test.php网页
1.将下面的test.php页面放到nginx默认发布目录下
2.在server3上启动mysql,并创建授权redis用户
3.将test测试网页的数据库传给server3上的mysql,并将数据导入mysql
server3: 导入test测试页数据 mysql < test.sql
4.测试
从server2的redis读取数据
在redis上数据是不能及时改变的,还读的是缓存,只能修改,才能改变
六.触发器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模块
2.安装 php 的 gearman 扩展
七.安装 lib_mysqludf_json模块
lib_mysqludf_json UDF 库函数将关系数据映射为 JSON 格式。通常,数据库中的数据映
射为 JSON 格式,是通过程序来转换的
1.server3安装mysql-devel
3.将lib_mysqludf_json.so 模块拷入mysql的模块下
4.查看 mysql 的模块目录并注册 UDF 函数
八.安装 gearman-mysql-udf插件
这个插件是用来管理调用 Gearman 的分布式的队列
1.安装gearman-mysql-udf模块和包依赖
查看插件
3.指定 gearman 的服务信息
九.编写 gearman 的 worker 端,并后台启动
十.编写 mysql 触发器(根据实际情况编写) ,mysql.sql
1.并导入数据库 mysql < mysql.sql
2.查看触发器
十一.测试
在server3上进入到数据库更新数
server查询:
本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1975374,如需转载请自行联系原作者