当前位置: 代码迷 >> 综合 >> 缓存-20200927
  详细解决方案

缓存-20200927

热度:82   发布时间:2024-02-23 06:47:04.0

缓存

缓存的基本思想

  1. 空间换时间

单独开辟一块高速独立的地区存放数据,以便高效访问

  1. 时间局限性原理

同一时间段一件事情可能被同时多次使用

  1. 性能成本Tradeoff

缓存的优势

1、提升访问性能

2、降低网络拥堵

3、减轻服务负载

4、增加可扩展性

缓存读写模式

cache aside (旁路缓存)

对于写:首先检查缓存中是否有key,如果有key,那么删除,在更新数据库,数据库驱动缓存更新

对于读:首先读cache,若cache中没有数据,则读取数据库,在更新到cache中

特点:

业务端可以处理所有的数据访问细节,同时采用lazy计算的思想,更新数据库后删除缓存中信息,会大大减少数据库与缓存中信息不一致的问题

适用于:

对数据一致性要求较高 or 或者缓存更新数据业务比较复杂

 

lazy计算:对于一个事物,再不需要的时候不计算,在需要的时候才计算

read/write through (读写穿透)

对于写:首先检查缓存中是否存在,若存在先更新缓存再更新DB,两个都更新完成后才会返回数据,若不存在直接更新DB

对于读:先读取缓存,若命中,则返回,若缓存不存在则读取DB

特点:

存储服务封存了所有数据处理细节,系统隔离型更佳,在进行写操作的时候,cache中有数据才更新,无数据不更新,内存利用率更高一点

适用于:

数据有冷热之分

write behind caching (异步缓存写入)

对于写:首先检查缓存中是否存在,若存在先更新缓存就返回,缓存服务异步更新DB,若不存在直接更新DB

对于读:先读取缓存,若命中,则返回,若缓存不存在则读取DB

特点:

数据存储的写性能更加提高,适合一些变更频繁的业务,但数据的一致性较差

适用于:

变更频率很高,但对数据一致性要求不太高的业务,减少DB压力