1.学习目标:
多级缓存经常用于亿级流量的并发访问数据的优化当中:
多级缓存主要分成以下几块的缓存:
(1) Nginx本地缓存:
用来抵抗的是热数据的高并发的操作,经常会被访问的数据,需要被保留到Nginx的本地缓存当中。对于热数据的访问直接走Nginx即可。注意Nginx本地缓存优先,只用于抵抗热部分数据,如果大部分的数据都存在于Nginx的本地缓存当中就会极度影响Nginx的性能
(2) Redis分布式大规模缓存:
用来抵抗的是很高的离散访问,支撑海量的数据,高并发的访问,高可用的服务。redis缓存最大量的数据,最完整的数据和缓存,1T+数据;支撑高并发的访问,QPS最高的几十万;可用性非常好,能提供非常好的服务。redis cluster的多master写入,横向扩容,1T+以上的海量数据支撑,几十万的数据读写QPS,99.99%的高可用性,可以有效的抗住大量的离散请求。
(3) Tomcat jvm的内存缓存:
主要是抗redis大规模灾难的,如果redis出现了大规模的宕机,也就是我们经常所说的缓存穿透,缓存击穿,缓存雪崩等导致nginx大量流失直接涌入数据生产服务,那么最后tomcat堆内存缓存至少可以再抗一下,不至于请求直 接跑到数据库,导致数据压力倍增。 tomcat jvm堆内存缓存,也可以抗住redis没有cache住的最后那少量的部分缓存