Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器

实验环境

server1 (172.25.254.10) nginx php
server2 (172.25.254.20) mariadb
server3 (172.25.254.30) redis

Redis结合lnmp

数据访问流程:client-> app -> redis -> mysql-> redis -> client
客户端用app访问,先在redis 里读数据,因为快,redis没有才去mysql读,读完保存在 redis里,然后返回客户端,下次再读就快

(1)停止server1和server3上的redis服务
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第1张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第2张图片
server3之前做过主从,所以现在要关闭后修改配置文件在开启
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第3张图片

(2)在server1上安装并配置nginx

Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第4张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第5张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第6张图片
修改nginx配置文件
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第7张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第8张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第9张图片
(3)在server1上安装并配置php
安装
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第10张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第11张图片

开启
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第12张图片
(4)让server2做mysql
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第13张图片
开启并初始化
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第14张图片
登录数据库,授权用户
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第15张图片
(5)修改server1上nginx的发布文件test.php
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第16张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第17张图片
(6)为server2上的mysql的test库加入一些数据

Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第18张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第19张图片
(7)浏览器访问测试172.25.254.10
可以看到导入的数据
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第20张图片
但是刷新一次后,可以看到后面就从redis读取数据
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第21张图片

这个时候有个问题,如果此时mysql数据发生变更,redis会同步吗?

(1)在server2上
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第22张图片
变更后发现,redis里没有变,浏览器也看不到变化,但是在redis里做的变化能看到
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第23张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第24张图片
要解决这种问题就要安装一个gearmand

gearmand简介: Gearmand 是一个用来把工作委派给其它机器、分布式的调用更适合做某项工作的机器、并
发的做某项工作在多个调用间做负载均衡、或用来调用其它语言的函数的系统。 简单来讲,就是客户端程序把请求提交给gearmand,gearmand 会把请求转发给合适的 worker 来处理这个请求,最后还通过 gearmand 返回结果。 运行流程:
Client–> Job --> Worker
1、Client 请求发起者,客户端程序可以是任何一种语言,C 、PHP 、Perl 、Python 等。
2、Job 请求调度者,负载协调把 Client 发出的请求转发给合适的 Worker。
3、Worker请求处理者,处理 Job 分发来的请求,可以是任何一种语言

(1)在server1上启动
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第25张图片
(2)在server2上
解压lib_mysqludf_json-master.zip
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第26张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第27张图片
安装mariadb-devel
在这里插入图片描述
编译模块并将模块放到mysql插件目录
在这里插入图片描述
查看并注册udf函数
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第28张图片
安装插件管理gearman的分布式队列
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第29张图片
会报错,因为版本太低了
解决问题
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第30张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第31张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第32张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第33张图片

注册udf函数
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第34张图片
指定gman服务信息
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第35张图片
编写mysql触发器并导入
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第36张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第37张图片
(3)编写gman的worker端(server1)

修改完成后,后台运行worker
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第38张图片
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第39张图片
(4)测试

修改数据库内容
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第40张图片
在redis上查看
在这里插入图片描述
页面查看,数据同步
Redis(四)结合lnmp环境Redis 作 mysql 的缓存服务器_第41张图片

你可能感兴趣的:(企业运维)