page contents

如何解决高并发系统遇到的问题?

目前后端用的缓存,主流的有Redis,对于高并发的系统,实际上会遇到以下的几个问题: (前提是一般的业务代码中,缓存空则去请求数据库) 1、缓存雪崩现象:由于访问了没有缓存,或者已经过期...

目前后端用的缓存,主流的有Redis,对于高并发的系统,实际上会遇到以下的几个问题:

(前提是一般的业务代码中,缓存空则去请求数据库)

1、缓存雪崩现象:由于访问了没有缓存,或者已经过期的KEY,导致大量请求到达数据库。

2、缓存击穿:单个KEY的高并发访问,高负载导致命中丢失,大量并发查询到达数据库。

针对第一个问题,围绕着解决缓存为空的空窗期,有两种方案:

1. 读写分离。

业务代码只负责读,定时脚本负责写。

attachments-2019-12-p5nVdoqT5e05a7cacd7fc.png


2. 设置两个过期时间,一个是业务逻辑上的过期时间,另一个是相对滞后的实际过期时间,在两个时间点之间,对缓存进行更新。

attachments-2019-12-gXZrWEPj5e05a7e16f673.png


针对第二个问题,把单KEY节点的负载访问,随机分散到几个缓存副本节点中。更新的时候,缓存副本全部同步更新。

attachments-2019-12-UMYMamLP5e05a7f9e5364.png



  • 发表于 2019-12-27 14:44
  • 阅读 ( 695 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1312 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章