Linux的企业-Redis 作 mysql 的缓存服务器

一.配置环境

redhat6.5

server1:lump  php模块   172.25.50.1

server2:redis  172.25.50.2

server3:mysql  172.25.50.3Linux的企业-Redis 作 mysql 的缓存服务器

二.安装 lnmp 环境

1.安装php

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


2.配置nginx

Linux的企业-Redis 作 mysql 的缓存服务器


Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器


4.启动nginx和php服务

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


5.再server3安装mysql-server

Linux的企业-Redis 作 mysql 的缓存服务器


三.在server2安装redis

1.安装

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


2.配置,绑定所有端口

Linux的企业-Redis 作 mysql 的缓存服务器

3.启动服务

Linux的企业-Redis 作 mysql 的缓存服务器




四.安装 php 的 redis 扩展

1.安装模块

Linux的企业-Redis 作 mysql 的缓存服务器

   

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


Linux的企业-Redis 作 mysql 的缓存服务器


Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


2.配置模块

Linux的企业-Redis 作 mysql 的缓存服务器


加载 redis 模块

Linux的企业-Redis 作 mysql 的缓存服务器

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

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


五.测试test.php网页

1.将下面的test.php页面放到nginx默认发布目录下

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器



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

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


4.测试

Linux的企业-Redis 作 mysql 的缓存服务器


从server2的redis读取数据

Linux的企业-Redis 作 mysql 的缓存服务器


在server3上的数据库修改数据

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

六.触发器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模块

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


2.安装 php 的 gearman 扩展

Linux的企业-Redis 作 mysql 的缓存服务器


Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


3.配置gearman模块

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器



七.安装 lib_mysqludf_json模块

     lib_mysqludf_json UDF 库函数将关系数据映射为 JSON 格式。通常,数据库中的数据映
射为 JSON 格式,是通过程序来转换的


1.server3安装mysql-devel

Linux的企业-Redis 作 mysql 的缓存服务器


2.解压安装lib_mysqludf_json库函数

Linux的企业-Redis 作 mysql 的缓存服务器


gcc编译lib_mysqludf_json库Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器


八.安装 gearman-mysql-udf插件
这个插件是用来管理调用 Gearman 的分布式的队列


1.安装gearman-mysql-udf模块和包依赖

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


查看插件

Linux的企业-Redis 作 mysql 的缓存服务器


2.注册 UDF 函数Linux的企业-Redis 作 mysql 的缓存服务器


3.指定 gearman 的服务信息



Linux的企业-Redis 作 mysql 的缓存服务器


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

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器


十.编写 mysql 触发器(根据实际情况编写) ,mysql.sql

1.并导入数据库 mysql < mysql.sql

Linux的企业-Redis 作 mysql 的缓存服务器


2.查看触发器

Linux的企业-Redis 作 mysql 的缓存服务器



十一.测试

在server3上进入到数据库更新数

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器

server查询:

Linux的企业-Redis 作 mysql 的缓存服务器

Linux的企业-Redis 作 mysql 的缓存服务器






      本文转自一百个小排 51CTO博客,原文链接:http://blog.51cto.com/anfishr/1975374,如需转载请自行联系原作者


上一篇:SQL中where条件解析


下一篇:redis 命令执行过程