Redis和Mysql数据同步的两种方案
**
利用数据库本身进行手动同步
**
具体操作
- 在MySQL中对要操作的数据设置触发器Trigger,监听操作
- 客户端(NodeServer)向MySQL中写入数据时,触发器会被触发,触发之后调用MySQL的UDF函数
- UDF函数可以把数据写入到Redis中,从而达到同步的效果
好处
同步效率比较高,一般结合延迟双删和缓存超时策略进行手动同步
延迟双删和缓存超时简介
首先删除redis中的数据,然后更新数据库中的数据,最后过一段时间(大概一分钟)再对redis中数据做一次删除.这样就可能尽量保证我们的redis数据被删掉,但极端情况下,旧数据还是没有删掉,所以我们设计让它的过期时间短一点,这样就算没删掉也可以很快过期.
利用Canal进行数据同步
Canal简介
阿里旗下,用来监控数据库内部数据变化的软件.
Canal会伪装成mysql的备份机.当mysql进行数据操作以后,会将记录记载到日志中,同时发送给备份机,当canal接收到日志数据后,就会进行后续数据同步工作.
数据更新(以首页广告更新为例)
当mysql内部的数据发生改变之后.我们的数据监控微服务,就可以根据canal获取到最新更新的数据.,将我们的position字段的值提取出来(代表当前广告的位置),之后数据监控的微服务就会把这个值发送到rabbitmq上,rabbitmq收到这个消息后,就会把这个消息保存到自己的内存中.这时运营的微服务就会从rabbitmq中把值拿出来,调用nginx中的更新数据的lua脚本进行数据更新.
Redis和Mysql数据同步的两种方案相关推荐
- redis与mysql数据同步_Redis与MySQL数据同步解决方案
数据库同步到Redis 我们大多倾向于使用这种方式,也就是将数据库中的变化同步到Redis,这种更加可靠.Redis在这里只是做缓存. 方案1 做缓存,就要遵循缓存的语义规定: 读:读缓存redis, ...
- SAP CRM和C4C数据同步的两种方式概述:SAP PI和HCI
SAP Cloud for Customer(C4C)和SAP其他传统产品进行数据同步的方式,如下图所示,可以使用SAP Netweaver Process Integration或者SAP HANA ...
- mongo数据同步的三种方案
(一)直接复制data目录(需要停止源和目标的mongo服务) 1.针对目标mongo服务已经存在,并正在运行的(mongo2-->mongo). 执行步骤: (1).停止源/目标服务器的mon ...
- win7两个mysql数据同步_两台服务器两个数据库怎么实现数据同步备份。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SQL Server 2008 镜像 环境设置. 初始环境: 1.主机 Win7 + SQL Server 2008 R2 IP地址:192.168.56 ...
- mysql数据没有同步更新_MySQL数据库主从没有同步的两种解决方案
MySQL数据库主从没有同步的两种解决方案 发布时间:2020-05-13 13:54:57 来源:亿速云 阅读:190 作者:三月 栏目:数据库 下文主要给大家带来MySQL数据库主从没有同步的两种 ...
- MySQL数据同步到 Redis 缓存的几种方法
1 Mysql查完数据,再同步写入到Redis中 缺点1:会对接口造成延迟,因为同步写入redis本身就有延迟,并且还要做重试,如果redis写入失败,还需要重试,那就更费时间了. 缺点2:不解耦,如 ...
- docker容器运行mysql持久化_docker容器实现数据持久化的两种方式及其区别
前言 这篇博文是我对docker实现数据持久化几种方式的特征进行一个总结. 在docker中,它的存储文件系统是在dockerhost上原有的xfs或ext4架设了一层文件系统:overlay2(将此 ...
- 归一化mysql函数_数据归一化和两种常用的归一化方法
数据归一化和两种常用的归一化方法 一.总结 一句话总结: min-max标准化:x* =(x-min)/(max-min):新数据加入,需重新计算max和min Z-score标准化:x* =(x-μ ...
- dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
本文主要向大家介绍了MySQL数据库之c#mysql批量更新的两种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 总体而言update 更新上传速度还是慢. 1: 简单的 ...
最新文章
- Realm的简单使用
- Google Guava 概要
- linux c 获取进程 cpu占用率 内存占用情况
- 深入分析 iBATIS 框架之系统架构与映射原理--转载
- linux keepalived 脚本,Linux下 keepalived 的安装和配置
- c++ int8_t转int_c专题之指针-----什么是指针?
- 5条简洁的JavaScript技巧
- 毕设日志——pytorch版本faster rcnn运行代码前的环境配置2019.4.9
- kubeflow fairing详解
- python读取txt文件
- 朋友让帮忙写个理发店的会员信息管理系统...
- 《伸手系列》之arm架构服务器安装kubernetes
- 【03】Linux笔记
- 小米5s Plus 安装Xposed框架
- 《图说区块链》读书笔记(完整版)
- wtc java 代码 tpcall(servicename_[转载]Dorado+Spring+Wtc+Tuxedo开发
- 问道手游平民玩家什么职业好
- Weakly Supervised Deep Learning for Thoracic DiseaseClassification and Localization on Chest X-rays
- RAAVPPSPSLSRHSSPHQSEDEEE
- 【JOURNAL】怎么计算4万亿