redis-3之redis持久化、redis+mysql+nginx+php整合

redis持久化、redis+mysql+nginx+php整合

  • reids持久化
  • myslq+redis+nginx+php整合
      • myslq+redis+nginx+php整合
      • redis与mysql的数据同步


reids持久化

redis-3之redis持久化、redis+mysql+nginx+php整合_第1张图片

redis-3之redis持久化、redis+mysql+nginx+php整合_第2张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第3张图片

myslq+redis+nginx+php整合

因为redis是在内存中工作的,速度快,所以 redis可以放在mysql之前,充当缓存使用。
应用需要写入数据时,就向mysql写。应用读取数据时,就从redis中读。所以就需要做好mysql与redis的自动同步。
redis-3之redis持久化、redis+mysql+nginx+php整合_第4张图片

方式一:
应用直接使用redis,在redis端需要编写代码将最终数据同步到mysql,以实现数据一致性。

redis-3之redis持久化、redis+mysql+nginx+php整合_第5张图片

方式二:
更适合大规模应用。
redis-3之redis持久化、redis+mysql+nginx+php整合_第6张图片
下面的实验是使用的用户自定义函数。

myslq+redis+nginx+php整合

server2 ---- 172.20.10.6 ---- redis master (缓冲层)
server3 ---- 172.20.10.8 ---- nginx 、php、gearmand (前端)
server 5 ---- 172.20.10.11 ---- mariadb (后台)

分布式的分发框架
client (server5): MySQL发生了update事件,触发trigger。触发器会调用用户自定义udf函数json_object(用于转换数据,因为mysql与redis数据不兼容),之后把数据发给gearman(gman_server_set、gman_do_background)
server (server3) :gearmand,监听4730端口
worker (server3): 用户端自己写的代码worker.php,也可以用其他语言编写比如Java(作用就是从gearmand中获取任务,同步redis)。php要求支持两个模块:gearman模块和redis模块。。worker.php首先会通过php-gearman模块获取任务,再通过php-redis模块更新redis server,以完成redis的更新。

框架中redis与mysql上数据必须是同步的,怎么样使得mysql上的数据更新之后自动同步到redis?
使用触发器。
mysql想要将变更数据传给远端,需要:
1、转换成json的数据结构
2、发布到分布式的分发系统上面

redis-3之redis持久化、redis+mysql+nginx+php整合_第7张图片

redis-3之redis持久化、redis+mysql+nginx+php整合_第8张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第9张图片
在这里插入图片描述
redis-3之redis持久化、redis+mysql+nginx+php整合_第10张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第11张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第12张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第13张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第14张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第15张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第16张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第17张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第18张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第19张图片
在这里插入图片描述
redis-3之redis持久化、redis+mysql+nginx+php整合_第20张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第21张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第22张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第23张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第24张图片

redis-3之redis持久化、redis+mysql+nginx+php整合_第25张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第26张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第27张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第28张图片

redis-3之redis持久化、redis+mysql+nginx+php整合_第29张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第30张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第31张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第32张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第33张图片
在这里插入图片描述
redis-3之redis持久化、redis+mysql+nginx+php整合_第34张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第35张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第36张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第37张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第38张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第39张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第40张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第41张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第42张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第43张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第44张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第45张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第46张图片

发现redis中只要有一个数据缺失,就会从mysql中将整体数据都加载一遍。不够优化。如何实现异步变更呢?即redis上只有这一个数据变更,那么只需要从mysql上将这一个数据加载一遍就行了。所以需要将redis和mysql同步。当mysql更新了,那么就立即更新redis。

redis与mysql的数据同步

到目前为止,nginx、php、redis、mysql已经可以整合一起工作了,但是还需要将redis和mysql上的数据同步。怎么样使得mysql上的数据更新之后自动同步到redis?
使用触发器。
mysql想要将变更数据传给远端,需要:
1、转换成json的数据结构
2、发布到分布式的分发系统上面

redis-3之redis持久化、redis+mysql+nginx+php整合_第47张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第48张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第49张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第50张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第51张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第52张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第53张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第54张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第55张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第56张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第57张图片
在这里插入图片描述
redis-3之redis持久化、redis+mysql+nginx+php整合_第58张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第59张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第60张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第61张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第62张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第63张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第64张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第65张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第66张图片
在这里插入图片描述
在这里插入图片描述
redis-3之redis持久化、redis+mysql+nginx+php整合_第67张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第68张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第69张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第70张图片
redis-3之redis持久化、redis+mysql+nginx+php整合_第71张图片

你可能感兴趣的:(笔记,Linux,redis,php,mysql,nginx)