redis结合mysql、自动同步

本文探讨了在高访问量场景下,如何利用Redis作为MySQL的缓存以减轻数据库压力。介绍了两种数据同步方案:一是通过MySQL触发器和用户自定义函数(UDF),二是使用阿里Canal应用。并详细讲解了一个使用Gearman实现Redis与MySQL自动同步的实验,包括实验准备、配置和流程。
摘要由CSDN通过智能技术生成

1.redis结合mysql
由于目前互联网巨大的访问量,在生产环境中常常需要redis结合mysql来用,如下图例,
我们可以将redis当作mysql的缓存,应用(app)所有读的操作都负载到redis上,因为redis够快,如果直接从mysql上读会对它造成巨大的压力,之前的mysql主从复制同样也是为了解决这样的问题,如果redis中没有想要的内容再从mysql中读并把读到的内容缓存到redis中。但是现在存在一个问题:当应用执行update操作时,就是往mysql中添加内容时,这时候redis无法完成更新,并且mysql无法将更改传递到redis中,因为二者的数据结构不同并且没有专门的连接端口,这时候我们该如何解决呢?
第一种传统的方式:在mysql中事先定义好触发器,通过udf(用户自定义函数)将mysql数据做映射,比如说将其映射为json数据,json数据可以跨平台传输,因此可以将json文件传递给redis从而完成数据的同步。但是这种方式从根本上是对mysql做操作,相当于给数据库创建函数对象,这种操作对数据库的侵入度是比较高的
第二种方式是:目前比较主流的,阿里开发的canal应用,它直接伪装成mysql slave的身份来对mysql进行复制,相当于mysql主从复制,然后通过事先准备好的javaclient将数据同步到redis,由于主从复制是mysql本身的功能,通过mysql主从复制协议实现的,因此侵入mysql数据库的程度更小

 

2.实验前准备

server2:需要提供redis

server3:需要php组件

server4:需要MySQL

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值