请列举几种数据库与缓存数据同步的方案,并简要说明其原理。
简答题
请列举几种数据库与缓存数据同步的方案,并简要说明其原理。
答案:数据库与缓存同步的方案有:实时同步方案(先更新数据库,再使缓存过期)、异步队列同步(通过消息中间件如Kafka)、使用canal工具(模拟MySQL主从同步,监控binlog日志)、UDF自定义函数(利用触发器)。
解析
参考答案
- 实时同步:先更新数据库,再使缓存失效(删除或过期),读时回填。
- 异步队列:更新数据库后发消息到Kafka等,消费者再失效或更新缓存。
- canal:模拟MySQL从库,订阅binlog,解析变更后同步缓存。
- UDF/触发器:数据库触发器调用自定义函数,主动通知缓存更新。
得分点解析
- 至少三种方案:考查方案广度,避免只会一种。
- 实时同步步骤:先库后缓存是关键,可降低脏读风险;删除缓存比更新更稳。
- canal原理:伪装从库、拉取binlog、解析行变更,做到业务无侵入。
- 异步队列场景:适合高并发、允许最终一致、需要削峰解耦的系统。
延伸
可结合延迟双删、缓存过期兜底、binlog订阅和消息可靠投递,保证最终一致性。