栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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


reids持久化


myslq+redis+nginx+php整合

因为redis是在内存中工作的,速度快,所以 redis可以放在mysql之前,充当缓存使用。
应用需要写入数据时,就向mysql写。应用读取数据时,就从redis中读。所以就需要做好mysql与redis的自动同步。

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

方式二:
更适合大规模应用。

下面的实验是使用的用户自定义函数。

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

redis与mysql的数据同步

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




























转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号