Oscache 概述
应用程序为了提高性能,可以通过使用缓存来达到目的,缓存的存储介质可以
内存或者硬盘,通常将数据存储在内存里,确切的说是jvm的内存中,缓存是
基于Map这种思想构建的,以键值对的方式进行存取,之所以还可以将
缓存的数据存储在硬盘中,是因为内存资源相当有限和宝贵,所以当内存资源
不足的时候,就可以将其存储到硬盘中,虽然硬盘的存取速度比内存要慢,但是
因为减少了网络通信量,所以还是提高程序的性能。缓存可以分为客户端缓存和
服务器端缓存,所谓的客户端缓存通常指的是IE浏览器的缓存,服务器端缓存指
的web服务器的缓存,通常可以通过第三方组件实现,如oscache,memcache
我们通常将那些频繁访问但是又不是经常改变的数据进行缓存。为了保证缓存数据的
有效性,在数据发生改变的时候,我们要刷新缓存,避免脏数据的出现。刷新缓存的
策略有两种,一种是定时刷新,一种手动刷新。
缓存的层次如下:jsp-->action-->service(通常放置在service)-->dao,
缓存越靠前对性能的提升越大
缓存的策略:(缓存空间不足需要进行清理的时候使用)
LRU:最近最少使用原则.(理解:存储书)
FIFO:先进先出的缓存策略.(理解:排队)
你来说说缓存?说说你对缓存的理解(如果遇到重复的,就可以省略)
我们在项目中使用缓存的目的是为了提高应用程序的性能,减少访问数据库
的次数,从而提高应用程序的吞吐量。我们通常将权限,菜单,组织机构
这些频繁访问但是不经常改变的基础数据进行缓存,其中我在做()某某项目的时候
就通过oscache对ZTree的树形菜单进行了缓存,并且在做的时候和单列设计
模式进行结合,考虑到多线程下的安全问题,还对单例模式加入了双重判定锁
的检查方式。
Oscache 概述相关推荐
- 一文了解 Kubernetes 中的服务发现
原文链接:一文了解 Kubernetes 中的服务发现 Kubernetes 服务发现是一个经常让我产生困惑的主题之一.本文分为两个部分: 网络方面的背景知识 深入了解 Kubernetes 服务发现 ...
- java综合知识点总结-必背
目录 目录 1 基础篇 4 一.JDK常用的包 4 二. Get和Post的区别 4 三. Java多态的具体体现 4 四. StringBuffer StringBuilder String 区别 ...
- JAVA超全笔试/面试考试题.(500问)--第三章面试题全面收录
杂七杂八面试题收录(可能会有重复) 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承) ...
- java面试宝典(综合版)
目录 目录............................................................................................... ...
- Java基础知识点总结(面试版)
目录 基础篇 4 一.JDK常用的包 4 二. Get和Post的区别 4 三. Java多态的具体体现 4 四. StringBuffer StringBuilder String 区别 5 五. ...
- java面试题2019最新
java面试题 常用 目录 1 基础篇 5 一.JDK常用的包 5 二. Get和Post的区别 5 三. Java多态的具体体现 5 四. StringBuffer StringBuilder St ...
- Java面试知识点大全
知识点复习大纲 目录 1 基础篇 4 一.JDK常用的包 4 二. Get和Post的区别 4 三. Java多态的具体体现 4 四. StringBuffer StringBuilder Strin ...
- Java面试整理 -码之狼
_面试概念整理以及项目逻辑分享 注意:( 所有的概念都是结合所学知识去记忆,死记硬背并不会有太好的记忆并且难以结合到自己的项目中去) 一.JDK常用的包 二. Get和Post的区别 三. Java多 ...
- Java 多线程概述
多线程技术概述 1.线程与进程 进程:内存中运行的应用程序,每个进程都拥有一个独立的内存空间. 线程:是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换.并发执行,一个进程最少有一个线程, ...
最新文章
- 安装codeblocks17.12
- P5341-[TJOI2019]甲苯先生和大中锋的字符串【SAM】
- Linux Shell脚本专栏_服务器系统配置初始化脚本_01
- 02将代码开源到github(不会使用github的来看看吧)
- Flash Socket通信的安全策略问题
- interface not supported怎么解决_这20个婚礼伴手礼,怎么看都比喜糖有创意!
- iframe框架初识(一)
- log4j 配置和使用
- JDK官网下载历史版本
- 中国互联网络发展状况统计报告计算机,CNNIC发布《第22次中国互联网络发展状况统计报告》...
- 前端背景图放置_css如何设置背景图片?background属性添加背景图片
- win10安装PHP环境
- 盘点华为系工控企业——中国A股上市公司最多的创业体系
- echo命令详细解析(linux中超级详细,图文展示)
- 京东网页(动态)搭建,利用jquery实现
- uni-app z-index无效的解决办法(遮罩层)
- Win11上手初体验,文末附Win10升级Win11方法
- iOS客户端monkey测试
- 高等教育学:教育心理学概述
- 学习 Civil 3D二次开发从哪儿开始?
热门文章
- PyCharm平台下初学Django框架
- Python学习笔记:求一组数据的众数
- 16.对极几何——介绍,立体视觉约束,条件_1
- Linux下rcS文件中sleep用法,对busybox工具rcS脚本中exec执行﹑后台执行和nohup执行的理解...
- python hackrf_HackRF固件更新及编译环境搭建
- bzoj 2962 序列操作 线段树
- bzoj3190 [JLOI2013]赛车 半平面交
- 2017.3.14 软件包管理器 思考记录
- 个人计算机的缩写英语,计算机中常用的英语缩写
- 怎样将树的中序遍历的数输入到一个数组中_LeetCode 530.二叉搜索树的最小绝对差