Welcome everyone

缓存使用引起的思考

分布式 汪明鑫 2495浏览 2评论

最近和缓存打交道比较多,像redis,memached,localCache等,也遇到一些坑

记录下自己因缓存而引起的思考

 

个人觉得缓存的思想是一种囤货的思想,快速拿取囤货,如果囤货miss,再去买miss的货回来

缓存的思想在计算机的世界屡见不鲜

从CPU、内存、多级缓存来看缓存为了解决硬件速度不一致的问题

再到我们常用的memcached、localCache

很多优秀的开源开框架都用了缓存的思想,比如Spring,Mybatis,Hibernate

 

使用本地缓存解决热点数据问题,使用memcached扛住大量读请求

使用了缓存,就有可能会出现数据不一致的现象

接受短暂、偶发的数据不一致问题

为了高并发和可用性就会牺牲一部分的一致性

当数据实时性要求并不高时,完全可以接受短暂的不一致

我们需要做好的就是设置好缓存的过期时间以及准确的回源机制

使用从库也是为了扛住读压力,我们既然选择了冗余备份的从节点,就要接受短暂的主从延迟

必要时候,也可以直接读写库

再往其他方面想一下,CAP理论,可用性和一致性不可兼得

软件和架构设计都是这个道理,不同的方案和设计都有其优缺点

单点,部署运维成本低但是摆脱不了单点故障,扛不了多少流量

冷备,避免了单点故障,冗余部署,浪费资源,而且长期冷备切流时又没办法保证系统不出问题

分布式,在可用性、高并发上有大大提升,但是又避免不了数据的一致性

在注册中心的场景下,显然可用性的要求更高

但涉及金额财务,数据的一致性要求更高

没有最好的,只有更合适的,选择在当前业务和场景的优点大于缺点的方案和设计

 

转载请注明:汪明鑫的个人博客 » 缓存使用引起的思考

喜欢 (0)

说点什么

2 评论 在 "缓存使用引起的思考"

提醒
avatar
排序:   最新 | 最旧 | 得票最多
san.zhang
游客

强啊,牛逼鑫

wpDiscuz