缓存用了这么多年,没想到一直用错了?

架构师之路

共 1754字,需浏览 4分钟

 ·

2021-02-13 21:06

《大专栏》第五阶“缓存”已经放出。

工程上,缓存一般有几种使用方式?
(1)进程内缓存
(2)进程外缓存,也就是缓存服务

如果有多个服务使用进程内缓存,如何保证一致性?
常见的有三种方法:
(1)服务节点同步通知;
(2)MQ异步通知;
(3)牺牲少量一致性,定期后端更新;

绝大部分情况,还是应该使用缓存服务,缓存的使用,有什么注意点?
以下几点,应该要注意:
(1)服务与服务之间不要通过缓存传递数据;
(2)如果缓存挂掉,可能导致雪崩,此时要做高可用缓存,或者水平切分;
(3)调用方不宜再单独使用缓存存储服务底层的数据,容易出现数据不一致,以及反向依赖;
(4)不同服务,缓存实例要做垂直拆分,不宜共用缓存;

互联网缓存操作细节,最佳实践是什么?
Cache Aside Pattern

Cache Aside Pattern的细节是什么?
它分为读缓存最佳实践,以及写缓存最佳实践。

读缓存最佳实践是:先读缓存,命中则返回;未命中则读数据库,然后设置缓存。

写缓存最佳实践是:
(1)淘汰缓存,而不是修改缓存;
(2)先操作数据库,再操作缓存;
画外音:为什么呢?

缓存的本质是“冗余了数据库中的数据”,可能存在什么问题?
缓存与数据库数据不一致

什么场景下容易出现不一致?
写后立即读业务场景。
画外音:为什么呢?

出现不一致时,优化思路是什么?
及时把缓存中的脏数据淘汰掉。

具体要怎么淘汰,保证缓存与数据库中数据的一致性呢?
(1)服务同步二次淘汰法;
(2)服务异步二次淘汰法;
(3)线下异步二次淘汰法;
画外音:二次淘汰法,是很常见的一种实践。

目前缓存服务最常用的是什么?
Redis和memcache。

什么时候选择使用Redis?
以下场景优先使用Redis:
(1)需要支持复杂数据结构;
(2)需要支持持久化;
(3)需要天然高可用;
(4)value存储内容比较大;
如果只是纯KV,可以使用memcache。
画外音:纯KV场景,为什么memcache会更快呢?

17次直播回看,以及《架构师第六阶:缓存架构》的6节也已经放出,系统性的详聊了上面这些问题,感兴趣的同学可以扫码看细节。

17次直播精华回看,有哪些内容?

(1)每秒100w请求,秒杀架构
(2)千万粉丝,feed架构
(3)千万同时在线,IM架构
(4)每秒100w检索,搜索引擎内核架构
(5)MQ内核细节
(6)RPC内核细节
(7)数据库架构
(8)多机房多活架构与细节
(9)分布式调用链追踪架构与细节
(10)3周自研自动化上线平台
(11)区块链中的架构理念
(12)数据库性能瓶颈定位
(13)反范式数据库设计
(14)微服务抽离与解耦
(15)经典架构10问
(16)微服务与数据库架构10问
(17)技术人职业发展规划

每次1-2小时不等,全部已放出。


50节架构师训练营干货重放,有哪些内容?

第一阶:技术选型(5节,已放出)

第二阶:接入层架构(5节,已放出)

第三阶:极速性能优化(3节,已放出)

第四阶:微服务架构(7节,已放出)

第五阶:数据库架构(6节,已放出)

第六阶:缓存架构(7节,已放出)

第七阶:架构解耦

第八阶:架构分层

第九阶:架构进阶

把控住这些,应该能成为一名P8的架构师吧?


其他“阶”内容何时放出?
2.21之前全部放出

《大专栏》,有没有折扣?
(1)巨折899(原价1699);
(2)参加过二期训练营的小伙伴免费
(3)邀请朋友一起学,返现20%;

有进一步福利么?
2.20之前,可领150优惠券(749)。
画外音:仅限这两天了,抓紧时间。

如何领优惠券?

扫码领券,直减150,仅限2.20之前


如何邀请小伙伴参加?
详情页右上角分享,推广员不买专栏也能邀返20%

如何入手《大专栏》?
扫码,入手架构师之路《大专栏

白嫖了这么多年,欢迎为情怀补票,希望大家有收获,早日成为P8P9架构师

画外音:建议平均每天花2小时,倍速看1-2集直播,5节训练营,春节20天假期搞定。


讨论:
写数据时,为什么要先操作数据库,再操作缓存?

阅读原文,订阅《大专栏》(先领优惠券
浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报