
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存技术的应用在大多数软件开发项目中是会经常用到的一个编程开发技术,而本文我们就通过案例分析来了解一下,缓存技术的应用需要注意哪些问题。
服务层缓存
在前面无论是CDN还是Nginx,都是对Web应用中的静态资源文件进行缓存。但后端应用与服务更多的是访问接口与数据,对于这些对象我们如何利用缓存技术进行性能优化呢?对于后端应用与服务的缓存可以按部署方式分为进程内缓存与分布式缓存服务。
进程内缓存
所谓进程内缓存,就是在应用中开辟的一块内存空间,数据在运行时被载入这块内存,通过本地内存的低延迟、高吞吐的特性提高程序的访问速度。
分布式缓存服务
与进程内相对的,就是需要独立部署的分布式缓存服务。常用的是基于Redis这种内存型NoSQL数据库,对整体架构中的应用数据进行集中缓存。
在架构设计时,很多新架构师一听到缓存,下意识认为增加Redis分布式缓存服务器就够了,其实这是片面的做法。在缓存架构设计时,一定要按照由近到远、由快到慢的顺序进行逐级访问。即便是你能保证网络完全可用,但Redis集群承担了来自所有外部应用的访问压力,一旦突发流量超过Redis的负载上限,整体架构便面临崩溃的风险。
Redis缓存服务集群
因此在Java的应用端也要设计多级缓存,将进程内缓存与分布式缓存服务结合,有效分摊应用压力。在Java应用层面,只有EhCache的缓存不存在时,再去Redis分布式缓存获取,如果Redis也没有此数据再去数据库查询,数据查询成功后对Redis与EhCahce同时进行双写更新。这样Java应用下一次再查询相同数据时便直接从本地EhCache缓存提取,不再产生新的网络通信,应用查询性能得到显著提高。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。