缓存与db一致性问题
2016-05-19 10:07
190 查看
缓存和数据库架构:
主流方案:用数据service屏蔽缓存和db,读写都走service
非主流方案:异步缓存更新,通过binlog
一缓存与db一致性问题
原则:先淘汰缓存,再修改db。如果使用更新缓存在修改DB的方案不会出现下列问题
缓存+主库:
缓存+主从:双淘汰法(同步,异步timer,binlog分析)
二db主从一致性问题
不一致原因,主从同步有延迟。
解决4种方案:
1半同步复制,等到从库写完,主库再返回,利用数据库原生功能实现。缺点:主库写请求时延增加,吞吐量降低
2 强制读主库:缺点丛库只用作冗余了,没发挥读写分离优势,智能通过cache来提升性能
3 数据库中间件:所有读写都走数据库中间件,中间件记录到写库的key,在时间窗口里面读请求路由到主库,主从完成后,路由到丛库
4 缓存记录key:用一个缓存记录写请求的key,缓存过期时间为时间窗口长度,读请求时先看缓存有没有key,有读主库,无读丛库
主流方案:用数据service屏蔽缓存和db,读写都走service
非主流方案:异步缓存更新,通过binlog
一缓存与db一致性问题
原则:先淘汰缓存,再修改db。如果使用更新缓存在修改DB的方案不会出现下列问题
缓存+主库:
缓存+主从:双淘汰法(同步,异步timer,binlog分析)
二db主从一致性问题
不一致原因,主从同步有延迟。
解决4种方案:
1半同步复制,等到从库写完,主库再返回,利用数据库原生功能实现。缺点:主库写请求时延增加,吞吐量降低
2 强制读主库:缺点丛库只用作冗余了,没发挥读写分离优势,智能通过cache来提升性能
3 数据库中间件:所有读写都走数据库中间件,中间件记录到写库的key,在时间窗口里面读请求路由到主库,主从完成后,路由到丛库
4 缓存记录key:用一个缓存记录写请求的key,缓存过期时间为时间窗口长度,读请求时先看缓存有没有key,有读主库,无读丛库
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 架构纵横谈之二 ---- 架构的模式与要点
- 页面缓存:内存和文件之间的那些事
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- BS项目中的CSS架构_仅加载自己需要的CSS
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结