redis+mysql及通过gearman实现同步

本文介绍了如何使用Redis作为MySQL的缓存服务器实现读写分离,并通过Gearman框架确保数据同步。详细步骤包括LNMP环境配置、Redis及PHP扩展安装、MySQL读写分离设置、以及利用MySQL触发器和Gearman实现数据变更时Redis的更新。通过这个方案,可以提高系统的响应速度并保持数据一致性。
摘要由CSDN通过智能技术生成

redis+mysql及通过gearman实现同步

简介

Redis是一个key-value存储系统。和Memcached类似,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++(hiredis),C#,PHP,JavaScript,Perl,Object-C,Python,Ruby等客户端,使用很方便。

架构图

在这里插入图片描述
安装LNMP环境(这里为了省事,就是用yum来安装)
注意:如果有LNMP环境的话,就还原快照就行,直接从第四步 :安装redis开始
1、修改yum源

 vim /etc/yum.repos.d/epel.repo    #添加这个文件
[epel]
name=Extra Packages for
Enterprise Linux 6 - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

2、yum安装

yum -y install nginx
php php-fpm php-cli php-common php-gd 
php-mbstring php-mysql php-pdo php-devel
php-xmlrpc php-xml php-bcmath php-dba 
php-enchant mysql mysql-server

3、简单配置一下nginx

vim /etc/nginx/nginx.conf
server
{
        listen       80;
        #定义使用www.xx.com访问
        server_name  www.xx.com;
        #设定本虚拟主机的访问日志
        access_log  /logs/www.xx.com.access.log  main;
        #默认请求
        location / {
          root  /www/;      #定义服务器的默认网站根目录位置
          index index.php index.html index.htm;   #定义首页索引文件的名称
        }
        location ~ \.php$ {
        root /www/;                                         //红色标注的地方可以改为root html;  
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /www/$fastcgi_script_name;          //$document_root
        include fastcgi_params;
        }
}
注意:根据自己的设置来定,是存放php页面的目录

4、启动服务

[iyunv@redis~]# /etc/init.d/php-fpm start
正在启动 php-fpm:                                         [确定] 
[iyunv@redis~]# /etc/init.d/mysqld start
正在启动 mysqld:                                          [确定] 
 [iyunv@redis ~]# /etc/init.d/nginx start
正在启动 nginx:   
关闭防火墙
[iyunv@rediswww]# service iptables stop
[iyunv@redis redis]# netstat -tnlp      #查看监听
Active
Internet connections (only servers)
Proto
Recv-Q Send-Q Local Address              
Foreign Address            
State       PID/Program name   
tcp        0     0 0.0.0.0:80                 0.0.0.0:*                   LISTEN      2101/nginx                   
tcp        0     0 127.0.0.1:9000             0.0.0.0:*                   LISTEN      7544/php-fpm        
tcp        0     0 0.0.0.0:3306               0.0.0.0:*                   LISTEN      1871/mysqld

5、给mysql授权

[iyunv@redis~]# mysql
mysql>grant all privileges on *.* to root@localhost identified by '123456';
mysql>flush privileges;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值