首页 >

利用gearman实现redis缓存mysql

数据库|mysql教程利用gearman实现redis缓存mysql
gearman,redis, mysql ,缓存数据库
数据库-mysql教程
微信 公众 源码,vscode设置视频,ubuntu pow,tomcat漏洞分析,安卓sqlite 实例,jquery选座插件,怎么对前端框架进行封装,爬虫可以找买家吗,阿里云 php 环境,闽清网页seo排名,网站批量注册账号,vip视频解析网页源码,css 花店免费html模板lzw
环境:centos6.5mysql5.6gearman简介:Gearman是一个支持分布式的任务分发框架。设计简洁,获得了非常广泛的..
笑话网站使用什么源码,ubuntu如何退出终端,网络爬虫怎么运行,exif php 支持,seo做手Ilzw
彩票代售网站源码,vscode路线图,装ubuntu停在,tomcat设计模式实例,玩转爬虫,php蜘蛛源码,seo优化找哪个平台,asp.net简单的一个网站源码下载,带头像上传组件网页模板lzw
环境:

centos6.5

mysql5.6

)在mysql中的数据发生改变时触动触发器将数据传入Gearman中,这时的mysql相当于Gearman的clinet。然后运行自己编写的php程序作为worker,将Gearman中的数据传到Redis中去,这时的Redis相当于是Gearman的consumer。

1、安装gearman

实验中的系统yum源在centos6.5自带的网络yum源的基础上,增加了epel的源,EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包)
是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。使用这个源可以免去很多麻烦,省去源码编译的麻烦,需要注意的是,不论是使用centos自带的网络yum源还是epel扩展源,,都需要你的IP能够访问到公网。

安装gearman、php、php的gearman扩展、nc工具

yum install -y php-pecl-gearman libgearman libgearman-devel gearmand nc

启动gearman服务

/etc/init.d/gearmand start

验证gearman是否成功启动,如果返回的结果中有4730端口,那么表示服务已经正常启动了

[root@hadoop1 ~]# netstat -alnutp |grep gearman

2、模拟Gearman的工作原理:

使用下列命令查看Gearman的队列

watch -n 1 “(echo status; sleep 0.1) | nc 127.0.0.1 4730”

结果如下

writeLog 0 0 0

四列含义:1-任务名称;2-等待队列任务数;3-运行中的任务数;4-正在运行的worker进程数;

编译一段php代码模拟Gearman的Client:client.php

addServer();
$client->doBackground(‘writeLog’, ‘Log content’);
echo ‘文件已经在后台操作’;
echo “\n”;

执行client.php

php client.php

这时,再次查看Gearman的队列,发现等待队列中有一个任务

writeLog 1 0 0

编写一段php代码模拟Gearman的Worker:worker.php

该worker的作用是将客户端传递给Gearman的字符串’Log content’写入到当前目录下的gearman.log文件中

addServer();
$worker->addFunction(‘writeLog’, ‘writeLog’);
while($worker->work());

function writeLog($job)
{
$log = $job->workload();
file_put_contents(__DIR__ . ‘/gearman.log’, $log . “\n”, FILE_APPEND | LOCK_EX);
}

以nohup的方式后台启动worker.php

nohup php worker.php &

再次查看Gearman的队列,发现等待的任务变成0,worker进程变成了1,gearman.log有了内容

writeLog 0 0 1[root@hadoop1 ~]# cat gearman.log
Log content

3、安装mysql-server、mysql、php-mysql(php连接mysql的驱动,非必须,这里是为了稍后用程序比较从Redis和Mysql中分别读取数据的效率)。实验中,由于我的机子上之前已将安装了mysql5.6,所以就直接使用mysql5.6做实验了。当然也可以使用yum开安装mysql,可能安装的mysql版本不是5.6,但是完全没有关系。

安装mysql相关软件

yum install -y mysql-server mysql php-mysql

启动mysql

/etc/init.d/mysql start

4、安装lib_mysqludf_json

wget https://github.com/mysqludf/lib_mysqludf_json/archive/master.zip
mv master master.zip
unzip master.zip
cd lib_mysqludf_json-master
rm -rf lib_mysqludf_json.so
gcc $(mysql_config –cflags) -shared -fPIC -o lib_mysqludf_json.so lib_mysqludf_json.c

这时重新编译生成了lib_mysqludf_json.so,然后需要把lib_mysqludf_json.so拷贝到mysql的插件目录下,查看mysql的插件目录:

[root@hadoop1 ~]# mysql -u root -pupbjsxt –execute=”show variables like ‘%plugin%’;”
+—————+————————–+
| Variable_name | Value |
+—————+————————–+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+—————+————————–+[root@hadoop1 lib_mysqludf_json-master]# cp lib_mysqludf_json.so /usr/lib64/mysql/plugin/


利用gearman实现redis缓存mysql
  • 通过缓存数据库结果提高PHP性能的原理介绍【PHP】
  • 通过缓存数据库结果提高PHP性能的原理介绍【PHP】 | 通过缓存数据库结果提高PHP性能的原理介绍【PHP】 ...

    利用gearman实现redis缓存mysql
  • 通过缓存数据库结果提高PHP性能的原理介绍【PHP】
  • 通过缓存数据库结果提高PHP性能的原理介绍【PHP】 | 通过缓存数据库结果提高PHP性能的原理介绍【PHP】 ...