redis服务(2)

本文详细介绍了如何配置Gearman以实现实时的数据同步,从MySQL数据库利用lib_mysqludf_json和gearman-mysql-udf库触发触发器,当数据变化时将数据推送到Gearman队列,然后通过编写的PHP Worker将数据同步到Redis。整个流程包括了Gearman组件的角色介绍、安装过程、UDF函数注册、MySQL触发器创建、Worker端程序编写以及测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 配置 gearman 实现数据同步

Gearman是一个支持分布式的任务分发框架。

Gearman Job Server:Gearman核心程序,以守护进程形式运行在后台。
Gearman Client:可以理解为任务的收件员,比如我要在后台执行一个发送邮件的任务,可以在程序中调用一个Gearman Client并传入邮件的信息,然后就可以将执行结果立即展示给用户,而任务本身会慢慢在后台运行。
Gearman Worker:任务的真正执行者,一般需要自己编写具体逻辑并通过守护进程方式运行。
Gearman Worker接收到Gearman Client传递的任务内容后,会按顺序处理。

 首先利用mysql UDF(通过了lib_mysqludf_jsongearman-mysql-udf的组合实现)在mysql中的数据发生改变时触动触发器将数据传入Gearman中,这时的mysql相当于Gearman的clinet。然后运行自己编写的php程序作为worker,将Gearman中的数据传到Redis中去,这时的Redis相当于是Gearman的consumer。

安装 lib_mysqludf_json

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

需要安装gcc、mariadb-devel和lib_mysqludf_json-master

[root@server4 ~]# yum install -y mariadb-devel
[root@server4 ~]# ls
anaconda-screenshots  lib_mysqludf_json-master.zip  test.sql
[root@server4 ~]# yum install -y unzip
[root@server4 ~]# unzip lib_mysqludf_json-master.zip 
[root@server4 ~]# cd lib_mysqludf_json-master/
[root@server4 lib_mysqludf_json-master]# yum install -y gcc  ##安装gcc

 [root@server4 lib_mysqludf_json-master]# ls
[root@server4 lib_mysqludf_json-master]# gcc $(mysql_config --cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c

[root@server4 plugin]# pwd      ##plugin所在目录
/usr/lib64/mysql/plugin
[root@server4 plugin]# mysql
MariaDB [(none)]> show global variables like 'plugin_dir';
+---------------+--------------------------+
| Variable_name | Value                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值