缓存服务器异常(CDN缓存服务器)

缓存服务器异常(CDN缓存服务器)

1.缓存雪崩

缓存中大量数据同时过期。查询数据量大。导致缓存数据库服务器压力过大。甚至宕机

解决方案:

1.1 过期时间设置随机。避免大量数据同时过期

1.2 如果是分布式部署。将热点数据分布在不同的缓存数据库中

1.3 热点数据可以设置永不过期

2.缓存穿透

缓存和数据库中都不存在的数据。用户不断的访问不存在的数据。导致数据库压力过大

解决方案:

2.1 增加鉴权。用户访问限制。一段时间内访问次数限制等

2.2 将不存在的数据也进行缓存。缓存时间可以设置短一些

2.3 布隆过滤器。将所有可能存在的数据哈希到一个大的集合中。不存在的数据会被拦截

3.缓存击穿
缓存击穿是并发用户同时访问同一数据。缓存中没有或过期。瞬时访问压力集中在查询数据库。导致数据库压力瞬时增大

解决方案:

3.1 设置热点数据永不过期

3.2 利用互斥锁。exp:

protected function getData()
{
$ret = $this->getRedis($key);
if ($ret == null) {
try {
if (lock.get) {
$ret = $this->getMysql($key);
if ($ret != null) {
$this->setRedis($key, $ret);
}
}
} catch {
lock.unlock;
}
}
return $ret;
}

缓存热点key

缓存中的一个Key。在某个时间点过期的时候。恰好在这个时间点对这个Key有大量的并发请求。缓存过期会从数据库查询数据并设置缓存。此时并发的请求可能会瞬间把数据库压垮

解决方案

对缓存查询加锁。如果KEY不存在。就加锁。然后查DB入缓存。然后解锁;其他进程如果发现有锁就等待。然后等解锁后返回数据或者进入DB查询。

分享到 :
相关推荐

香港服务器租用价格影响因素有哪些(香港服务器租用价格影响因素有哪些呢)

香港服务器租用价格影响因素有:1。网络空间影响香港服务器租用价格。服务器主机房使用的...

香港服务器Windows系统与Linux系统如何选择(香港服务器如何选择操作系统)

对于一些大型网站来说。为了满足网站的需求。都会选择使用服务器进行搭建。特别是一些海外...

租用泰国服务器有哪些优势(租用泰国服务器有哪些优势和劣势)

租用泰国服务器的优势有:1。稳定性好。访问速度快。能满足用户的多种需求;2。机房采用...

Plesk控制面板如何管理数据库用户(Plesk控制面板)

Plesk控制面板是一款功能强大的主机管理软件。可用于管理Windows主机。它带有...

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注