缓存击穿、缓存穿透、缓存雪崩、反向代理的概念

关于缓存击穿、缓存穿透、缓存雪崩:

  • 缓存处理流程:
    缓存击穿、缓存穿透、缓存雪崩、反向代理的概念_第1张图片

  • 缓存穿透

    缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。

  • 缓存击穿

    缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

  • 缓存雪崩

    缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是, 缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

反向代理
正向代理是指代理客户端,反向代理指代理服务器
缓存击穿、缓存穿透、缓存雪崩、反向代理的概念_第2张图片
正向代理与反向代理的区别

  • 相同点:

    正向代理和反向代理所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端。

  • 不同点

    • 正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁
    • 正向代理一般是客户端架设的;反向代理一般是服务器架设
    • 正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度

你可能感兴趣的:(java学习,缓存)