缓存服务器异常(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。使用率不同。二级域名的使用率比一级域名高;2。存...

云主机相比传统物理主机有哪些优势

云主机相比传统物理主机的优势有:1。有高可靠性的资源池。能满足用户的资源需求;2。按...

服务器自动重启是因为什么(服务器自动重启是因为什么原因)

近期有很多网站站长上报香港服务器出現自动关机的状况。什么原因造成网络服务器自动关机呢...

怎么审查云服务器vps的质量(怎么审查云服务器vps的质量)

具体内容如下:1。审查云服务器vps的配置就硬件配置来说。我们通常从四个方面进行[&...

发表评论

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