前言:有赞开始制定自己的技术规范,应邀请,笔者负责“缓存使用规范”的制定,摘去部分保密内容,分享给大家。
一、为什么要使用缓存
1、业务视角
根据谷歌的一项研究,假如一个网站在3秒钟或更短时间内没有加载成功,会有 53% 的手机用户会离开。因此在提高应用程序的速度和性能上,每一毫秒都很重要,这直接影响了业务的留存率、转化率。
2、技术视角
大型网站的特点有高并发、大流量、用户分布广泛、网络情况复杂等,缓存正是系统优化的重要技术手段之一。它能够降低系统延迟,缓解数据库压力,提高系统的整体可用性、并发性、可伸缩性等。
二、缓存的使用场景
①读多写少的场景,如配置信息、商品信息、用户信息等。
②不追求数据强一致性的场景,大多数业务场景能接受短时间的不一致,但账户金额操作等重要数据的场景不建议使用。
三、缓存的使用模式
1、Cache-Aside
即业务代码围绕着Cache写,是由业务代码直接维护缓存,一般使用这种方式。
2、Cache-As-SoR
所有的操作都是对Cache进行,然后再委托给SoR进行真实的读/写。即业务代码中只看到Cache的操作,看不到关于SoR(system of record)相关的代码。共有三种实现方式:
-
<