数据库与缓存同步方案设计
序号 |
时间 |
备注 |
1 |
2021/12/20 |
1.0 |
2 |
|
|
一、目前现状
* 目前的redis只用在了token令牌的场景
* 目前业务数据存储及读取流程图
二、现状改进
* 除目前token使用redis外,组织架构、字典数据、列表类型数据、枚举类型、及常用不常变、使用频率较高数据都可以考虑放在Redis中,提高redis的使用率
* 改进后数据存储及读取流程图
三、数据库与Redis数据同步
* 数据库与Redis的数据同步常见的方式
* 在变更数据的时候,修改数据库的同时修改redis数据,通过代码实现
* 通过事件机制,写入数据库的同时发送一个事件到mq,然后消费该消息把对应的数据更新到缓存,通过代码实现
* 通过监控binlog变更缓存,通过中间件实现
* 以上几种方式都可以实现mysql数据库与redis的数据同步,但实现方式不同,有的需要在业务中写代码,有的是通过中间件实现,这里建议采用中间件方式实现,业务主要负责使用就可以。
四、实施
* 通过实施经验,如果数据库没有做主从或者主备部署,哪只能通过监听主数据库的binlog,如果部署则直接监听备或者从数据库更佳
* 同步组件使用bifrost实现,已经在客户实施过,可以满足要求,目前没有发现问题
* 主要操作步骤
* 打开binlog功能
* 在mysql中创建用于同步的账号,并赋予复制权限
create user mysqltoredis@'%' identified by 'sge@123#';
grant replication slave,replication client on *.* to mysqltoredis@'%';
* 在中间件中设置同步账号及同步的redis账号、同步的数据源
* 开启全量同步(初始时使用)及增量同步
* 观察确认该功能是否正常,确认没有问题,则整个同步过程完成
* 业务代码中即可以通过redis获取数据及确认确认数据是否正常
* 以上步骤全部完成,则表明数据库与缓存数据同步全过程全部完整
喜欢的朋友记得给关注~
- 点赞
- 收藏
- 关注作者
评论(0)