Gearman实现redis和MySQL同步

运维 专栏收录该内容
28 篇文章 1 订阅

实验环境

主机名功能
server1worker端
server3client端

一.Gearman运行过程

一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。

  • Client:请求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。
  • Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Worker。
  • Worker:请求的处理者,可以是 C,PHP,Perl 等等。

因为 Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。
甚至我们通过增加更多的 Worker,可以很方便的实现应用程序的分布式负载均衡架构。

二.Gearman实现redis和MySQL同步

lnmp网站服务器架构实现redis做MySQL的缓存
详细步骤参见博客:https://blog.csdn.net/chaos_oper/article/details/90183482
但是当更新MySQL数据库中数据时,redis缓存内容并未同步更新!
如何解决这个问题?
mysql 端更改数据后通过触发器 (插件) 提交, 最后提交给geramand(server端) 提交给worker端口(php-gearman/php-redis) 最后提交给redsi 同步成功。

client 端:

1.下载解压工具

2.下载udf-json函数并解压

3.安装mariadb-devel

在这里插入图片描述
4.安装编译软件gcc

5.进入解压后的 lib_mysqludf_json-master目录进行编译

在这里插入图片描述
6.将lib_mysqludf_json.so复制到/usr/lib64/mysql/plugin/下

在这里插入图片描述
7.进入数据库查看

在这里插入图片描述
8.下载并安装相关软件

在这里插入图片描述
9.下载并解压gearman-mysql-udf-0.6.tar.gz

10.进入到解压后的目录 gearman-mysql-udf-0.6后,编译

在这里插入图片描述
11.make && make install
12.进入数据库注册udf函数

在这里插入图片描述
在这里插入图片描述
13.创建函数

14.查看是否创建成功

在这里插入图片描述
15.指定gearmand的服务信息

在这里插入图片描述
16.修改test.sql并导入到数据库中

在这里插入图片描述
17.进入数据库后查看触发器

在这里插入图片描述
work端:
1.安装gearman并开启

2.查看gearman端口

在这里插入图片描述
3.在/usr/local/目录下编辑测试页面:

在这里插入图片描述
4.后台运行

测试:
1.在client端更新mysql数据库的数据:

在这里插入图片描述
2.浏览器访问172.25.13.1.数据同步成功!
在这里插入图片描述