就这么几个问题,领程序员最头疼的Redis

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

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

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

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

so,如何设计

针对第一个问题,围绕着解决缓存为空的空窗期,有两种方案: 一、读写分离。业务代码只负责读,定时脚本负责写

就这么几个问题,领程序员最头疼的Redis

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

就这么几个问题,领程序员最头疼的Redis

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

就这么几个问题,领程序员最头疼的Redis

有一位旅客到乡间旅游,看到一位农夫把喂牛的草料铲到一间小茅屋的屋檐上,不免感到奇怪。于是就问道:“老伯伯,你为什么不把喂牛的草放在地上,让它好好的吃呢?”老伯伯回答道:“这种草质量不好,我要是放在地上它就不会吃,但是我放到让它可以勉强够得着的屋檐上,它会努力去吃,直到把全部草料吃个精光!”

这个小故事告诉我们学习PHP全栈laravel实战、swoole、redis、高并发等喂(xiaopingguo950321)

南极鸟团(722584796)


分享到:


相關文章: