赞
踩
应用程序为了提高性能,可以通过使用缓存来达到目的,缓存的存储介质可以
内存或者硬盘,通常将数据存储在内存里,确切的说是jvm的内存中,缓存是
基于Map这种思想构建的,以键值对的方式进行存取,之所以还可以将
缓存的数据存储在硬盘中,是因为内存资源相当有限和宝贵,所以当内存资源
不足的时候,就可以将其存储到硬盘中,虽然硬盘的存取速度比内存要慢,但是
因为减少了网络通信量,所以还是提高程序的性能。缓存可以分为客户端缓存和
服务器端缓存,所谓的客户端缓存通常指的是IE浏览器的缓存,服务器端缓存指
的web服务器的缓存,通常可以通过第三方组件实现,如oscache,memcache
我们通常将那些频繁访问但是又不是经常改变的数据进行缓存。为了保证缓存数据的
有效性,在数据发生改变的时候,我们要刷新缓存,避免脏数据的出现。刷新缓存的
策略有两种,一种是定时刷新,一种手动刷新。
缓存的层次如下:jsp-->action-->service(通常放置在service)-->dao,
缓存越靠前对性能的提升越大
缓存的策略:(缓存空间不足需要进行清理的时候使用)
LRU:最近最少使用原则.(理解:存储书)
FIFO:先进先出的缓存策略.(理解:排队)
你来说说缓存?说说你对缓存的理解(如果遇到重复的,就可以省略)
我们在项目中使用缓存的目的是为了提高应用程序的性能,减少访问数据库
的次数,从而提高应用程序的吞吐量。我们通常将权限,菜单,组织机构
这些频繁访问但是不经常改变的基础数据进行缓存,其中我在做()某某项目的时候
就通过oscache对ZTree的树形菜单进行了缓存,并且在做的时候和单列设计
模式进行结合,考虑到多线程下的安全问题,还对单例模式加入了双重判定锁
的检查方式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。