对响应要求高的系统,架构时都会在增加缓冲服务器(Redis Memcachd), 那必须面对的问题就是如何保证缓冲和数据库之间数据一致性问题。
方案1: 查询直接查询缓冲,更新操作同时更新缓冲数据(存在问题就是必须两个更新同时成功,一方不成功则导致数据不一致)
方案2:MySQL binlog增量订阅消费+消息队列+处理并把数据更新到redis
推荐使用方案2:
数据同步一般有两种:
1. 全量同步 ,即将全部数据一次写入到redis,时间根据具体要求设定(如:几小时)
2. 增量同步,即实时同步。
主要分析增量同步,目前主要canal方案,基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql
具体操作是可以根据业务需求进行合理利用,如果订单、价格类的业务可以直接访问数据库(数据库需要进行合理的分库分表拆分)。