螺竹编程
发布于 2024-05-26 / 8 阅读
0

分布式系统/分布式缓存:分布式缓存介绍

什么是分布式缓存

在高并发的分布式的系统中,缓存是必不可少的一部分。

没有缓存对系统的加速和阻挡大量的请求直接落到系统的底层,系统是很难撑住高并发的冲击,所以分布式系统中缓存的设计是很重要的一环。

分布式缓存方案

  • Redis。

  • Memcache。

分布式缓存带来的问题

分布式缓存会带来3大问题:缓存穿透、缓存击穿、缓存雪崩。

缓存穿透

缓存穿透是指缓存和数据库中都没有的数据。数据查询压力大,且每次查询数据都不存在,缓存失去意义。

问题来源:数据不存在。 解决方案:

  • 布隆过滤器。利用布隆过滤来判断数据是否存在,不存在则直接返回。

  • 接口校验。

缓存击穿

缓存穿透是指缓存中没有而数据库中有的数据。用户在缓存中没有读到数据,而是直接从数据库中读取数据,引起数据库压力瞬间增大,造成过大的压力。

问题来源:数据不存在于缓存中,而存在于数据库中。 解决方案:

  • 设置热点数据永不过期。

缓存雪崩

缓存雪崩是指缓存中数据大批量到期,并且查询数据量过大,从而引起数据库压力过大。

问题来源:数据大批量到期。 解决方案:

  • 缓存数据的过期时间设置为随机值,防止同一时间大量数据过期现象的发生。

  • 设置热点数据永不过期。

常见缓存淘汰策略

  • 先进先出。

  • LFU(Least Frequently Used)

  • LRU(Least Recently Used)