课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发语言,而今天我们就通过案例分析来了解一下,Java编程开发缓存的概念与应用。
1、什么是缓存
缓存:存储在计算机上的一个原始数据复制集,以便于访问
缓存是介于数据访问者和数据源之间的一种高速存储,当数据需要多次读取的时候,用于加快读取的速度。
2、缓存的关键指标
缓存命中率:缓存是否有效依赖于能多少次重用同一个缓存相应业务请求
缓存键集合大小:生成键越多,重用的机会越小。键数量越少,缓存的效率越高
缓存可使用内存空间:物理上能缓存的对象越多,缓存命中率越高
缓存对象生存空间:缓存对象生存时间TTL(TimeTolive),对象缓存时间越长,重用可能性越高
3、常见的缓存实现形式
代理缓存:用户端,用户上网服务的一部分
反向代理缓存:数据中心的代理服务器
多层反向代理缓存
内容分发网络CDN:
CDN同时配置静态文件和动态内容:CloudFront
通读缓存read-through:客户端连接的是通读缓存,而不是生成响应的原始服务器,包括代理缓存、反向代理缓存、内容分发网络CDN
旁路缓存cache-aside:对象缓存,应用代码询问对象缓存需要的对象是否存在
浏览器对象缓存
本地对象缓存:
对象缓存在应用程序内存
4、缓存的优点
技术简单、性能提升明显、应用场景丰富
5、不适合使用缓存的场景
频繁修改的数据:读写比例在2:1以上,缓存才有意义
没有热点的访问:
6、缓存使用注意事项
数据不一致与脏读:缓存失效时间
缓存雪崩:数据库习惯了有缓存的日子,当缓存服务崩溃时,数据库因无法承受访问压力而宕机,进而导致整个网站不可用
缓存预热:warmup
缓存穿透:不恰当的业务或者恶意攻击持续高并发请求不存在的数据。将不存在的数据也缓存起来(value值为null),并设定一个较短的失效时间
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。