问题描述
场景一 用户修改了数据立即查询 假设数据库从库备份主库的时间为5s 用户修改查询是在这五秒内操作的 这时 就会出现读取出来的数据时错误的信息的情况
场景二 从库备份主库时 由于硬件或者网络问题需要时长过长 导致查询出来的数据不准确
问题解决方案:
1 双写
即 修改操作在主库和从库都进行 优点操作简单 缺点 不适合高并发场景
2 读写都走主库
即 修改查询操作都去主库操作 优点 操作简单 缺点 不适合高并发场景 主库压力大
3 缓存方案
即 查询从库之前添加一步操作查询缓存(建议是redis) 修改操作同时将数据存在缓存(redis)中一段时间(时长最好比主从备份周期稍长) 这样操作可以保证数据的可靠性
缺点 引入缓存技术 提升了技术难度 优点 适用于高并发场景 对数据库压力没有提升