Cache?首先记住什么应该cache,什么不应该cache。当你的页面经常变化时,还需cache么?
Cache?还得关心使用什么cache机制。Time Based or Change Based?对于新浪此类的首页,访问量巨大,而且几分钟内不会关心变化,当然用time based。
Cache? 最后,使用什么cache技术?FileCache还是MemoryCache?
现在starwood系统里使用的是FileCache。
FileCache如何定义key(文件名)?key只由页面的元素(变化的元素)组成,它的命名方式决定了cache的粒度。
a. key只由少量元素组成,比如一个由property,inspection,standard,subcomponent等十几个元素组成的页面,如果cache的key只由property组成,那么此cache页面的粒度非常之大,导致这个cache根本相当于无效。因为如此一来就有很多用户共享了这个cache,任何用户的任何元素发生变化时,都需要清cache,导致这个cache形同虚设。
b. key由很多元素组成,比如还是这个cache,它的key由所有元素组成,这样是能很好地唯一标识。但带来的问题是,cache文件粒度很小,文件过多,可能会影响性能。
所以,key的粒度最好比较适中。一方面,能降低cache被清除的经常性;另一方面,不会造成cache性能低的问题。一般倾向于由较稳定的几个元素组成key。
关于key的命名,郑大大说的
挺有意思。
FileCache在何时expire?
无论key的粒度大小,都无关清除cache的复杂性。要在哪些地方清除cache,只由cache文件所相关的元素数量有关。在任何元素发生变化时,都要清cache。变化的元素是否在cache的key中会影响清cache的方法,匹配名字或者寻找特定名字?
MemoryCache
优点:
1. 速度快
2. 扩容能力:memory cache可由多个服务器组成,到哪个服务器寻找cache?很简单,分配cache可以根据key来分配到特定的服务器,读取当然也一样。此种技术,可以把cache分配到大小适中的服务器,读取时间得以控制。同时,增加容量非常简单。
3. 无需自己清除:memory cache使用一个fragment的所有元素组成key,这样,肯定不会造成冲突。同时,使用LRU算法,我们无需关心清除cache的问题。
分享到:
相关推荐
JetCache是阿里巴巴开源的一款高性能、轻量级的分布式缓存框架,适用于微服务架构中的缓存场景。本文将详细介绍如何在SpringBoot项目中整合JetCache,并探讨其本地缓存和Redis缓存的使用,以及如何实现多缓存的并行...
### Cache性能分析实验知识点 #### 实验背景与目标 本实验旨在通过使用SimpleScalar模拟器对Cache性能进行深入分析,以此来加深对Cache基础知识、结构及其工作原理的理解。此外,还将探讨并量化Cache的主要参数...
Oracle数据库中的Buffer Cache和一般的Cache概念虽然相似,但它们在具体应用中有着不同的侧重点。首先,我们需要理解Buffer Cache的基本概念。在Oracle数据库系统中,Buffer Cache是内存结构的一部分,它存储了最近...
Java连接Cache数据库主要涉及到的是如何使用Java编程语言与Intersystems Cache数据库进行交互。Intersystems Cache是一款高性能、面向对象的数据库系统,广泛应用于医疗、金融等领域的复杂数据管理。在Java环境中,...
《PrimoCache重置工具详解及应用》 PrimoCache是一款高效、实用的硬盘缓存软件,它通过在系统内存中创建虚拟缓存,显著提升硬盘读写性能,从而优化系统运行速度。然而,如同大多数试用软件一样,PrimoCache在一定...
Cache数据库是一种高性能、高可用性的数据库管理系统,常用于构建复杂的企业级应用,尤其在医疗、金融和电信等领域广泛应用。本文将深入探讨Cache数据库的核心概念、面向对象软件开发以及M语言的相关知识。 首先,...
该工程包含数据缓存D_Cache和指令缓存I_Cache的Verilog代码和仿真文件,Cache的详细技术参数包含在.v文件的注释中。 直接相连16KB D_Cache Cache写策略: 写回法+写分配 (二路)组相连16KB I_Cache Cache替换策略: ...
【Cache性能分析实验报告】 本实验旨在深入理解Cache的基本概念、结构和工作原理,通过实际操作分析Cache的容量、相联度和块大小对性能的影响,以及不同替换算法的效果。实验采用Vmware虚拟机上的Redhat 9.0 Linux...
TI-6678 DSP多核编程中的Cache技术是一个复杂而重要的议题,尤其在多核处理环境下。Cache是计算机架构中用于减少处理器访问内存所需平均时间的一个高速数据存储区域。它作为处理器和主存储器之间的临时缓存,能够极...
### 分块矩阵优化Cache:深度解析与应用策略 #### 核心知识点概览: 1. **Cache基础原理**:理解高速缓存(Cache)在现代计算机系统中的关键作用及其内部结构,包括标记存储器和数据存储器的功能。 2. **Cache失效...
### Cache的工作原理详解 #### 一、引言 在现代计算机体系结构中,为了提高处理器访问数据的速度,引入了多种缓存技术。其中,Cache作为连接CPU与主存的重要环节,其工作原理对于理解计算机系统性能至关重要。本文...
在本“计算机体系结构cache实验报告”中,我们主要探讨了Cache存储过程的模拟和性能分析,重点关注了不同因素如关联方式、Cache容量、关联度和块大小对Cache性能的影响。实验采用控制变量法,通过操作系统试验中的...
《PrimoCache v3.09:硬盘缓存利器的深度解析》 PrimoCache,一个在IT领域中被广泛使用的高效硬盘缓存工具,其最新版本v3.09,为用户带来了更为优化的存储性能提升。这款软件的核心功能在于通过在内存中创建临时...
赠送jar包:cache-api-1.1.1.jar; 赠送原API文档:cache-api-1.1.1-javadoc.jar; 赠送源代码:cache-api-1.1.1-sources.jar; 赠送Maven依赖信息文件:cache-api-1.1.1.pom; 包含翻译后的API文档:cache-api-...
在计算机系统中,Cache是一种高速数据存储部件,用于暂时存储CPU频繁访问的内存数据,以减少主内存与CPU之间的数据传输延迟,提高系统的整体性能。本文将深入探讨基于AXI4(Advanced eXtensible Interface)总线协议...
《PrimoCache v3.09:提升硬盘性能的秘密武器》 在当今的计算机领域,存储设备的速度对系统整体性能有着显著的影响。尤其对于那些依赖大量数据读取的应用程序,如游戏、视频编辑软件和数据库服务,硬盘的读取速度至...
标题"jdbc连接cache的demo及jar包,自己备份.rar"指出这是一个关于使用JDBC(Java Database Connectivity)连接Cache数据库的示例项目,其中包含了必要的jar包,并且用户已经将其作为个人备份保存。这里的“Cache”...
全相联Cache( Fully-Associative Cache)是Cache组织方式的一种,与直接映射Cache和组相联Cache不同,它的每一个块都可以映射到Cache的任何一个位置上,这提供了更大的灵活性,但也带来了更高的复杂性。 全相联...
Guava Cache是Google Guava库中的一个强大特性,它提供了高效的本地缓存解决方案,用于存储经常访问的数据,以减少对远程服务或计算的调用,从而提高应用性能。本案例代码将详细介绍Guava Cache的使用,包括缓存的...
**ExpressCache安装教程** ExpressCache是一款优化电脑性能的软件,主要功能是通过在电脑的固态硬盘(SSD)上创建一个高速缓存,来提升传统机械硬盘(HDD)的读取速度,从而提高系统整体运行效率。本文将详细介绍...