`
mazzystar
  • 浏览: 26640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

这样的数据该不该用2级缓存?

阅读更多
(一)Hibernate的二级缓存策略的一般过程如下:
1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。
2) 把获得的所有数据对象根据ID放入到第二级缓存中。
3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。
4) 删除、更新、增加数据的时候,同时更新缓存。
  Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query Cache。
(二)什么样的数据适合存放到第二级缓存中?
1 很少被修改的数据
2 不是很重要的数据,允许出现偶尔并发的数据
3 不会被并发访问的数据
4 参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。
(三)不适合存放到第二级缓存的数据?
1 经常被修改的数据
2 财务数据,绝对不允许出现并发
3 与其他应用共享的数据。

原文摘自http://rujingzhang.iteye.com/blog/219487

我们项目中A表的情况是这样的 :
表A的数据只有当天添加的数据是有效的,如果没有当天的数据
那么选择“最近的”数据作为参考显示给用户,
用户可以在页面上点击某按钮获得当天数据,此时,系统访问XX服务器,得到数据并向A表插入一条数据,然后显示用户。
这是向A表insert数据唯一入口,并且A表的数据不会被update和delete

我现在想给A表中的数据缓存,并且DAO中的所有查询方法都控制为只查询3天之内的数据(查询3天之前的数据没有意义)

我的理解是这样的

(二)什么样的数据适合存放到第二级缓存中?
1 很少被修改的数据 会比较频繁的insert,但不会update,不知道算不算很少被修改
2 不是很重要的数据,允许出现偶尔并发的数据  没有 update 操作,所以不存在并发

3 不会被并发访问的数据 没有 update 操作,所以不存在并发

4 参考数据,指的是供应用参考的常量数据,它的实例数目有限,它的实例会被许多其他类的实例引用,实例极少或者从来不会被修改。 在整个应用中A表的数据使用较为频繁,每天都会有些数据失效,并且随时都会插入新数据

由于以前没有做过并发和缓存方面的工作,不知道A表的情况是否适合做2级缓存,做了缓存后会带来哪些问题,希望大家给点建议
希望投新手帖,隐藏帖的大哥们也能给点意见

分享到:
评论
1 楼 movingboy 2008-08-14  
既然插入了就不改,而且频繁用到,非常适合放到二级缓存中嘛!

相关推荐

    yii2数据缓存 学习笔记

    yii 学习笔记,其中包括数据缓存、缓存组件、缓存过期、缓存依赖的理解及yii2数据缓存的测试代码

    DataTable缓存数据操作

    DataTable缓存数据操作 DataTable 缓存数据操作

    ibatis_数据缓存

    ibatis 数据缓存,帮你了解ibatis的数据缓存机制。

    Android自定义图片三级缓存

    图片的三级缓存策略,即内存、硬盘和网络(其实网络不算是缓存,姑且算是吧~~),内存缓存使用的时LRUCache,这是一个存放键值对的列表,如果内存不够会根据最近使用次数的多少来删除其中的一个item,最少使用的就会...

    仿redis缓存Java版轻量级缓存组件LocalCache

    仿redis缓存Java版轻量级缓存组件LocalCache,基于JVM内存实现数据缓存及过期机制

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    二级缓存为1MB的英特尔64位至强处理器MP数据表

    Intel至强处理器MP是基于Intel NetBurst微体系结构的。...Intel至强处理器MP的第二个处理器家族的速度高达3GHz,该处理器家族拥有512KB二级高速缓存和1MB、2MB或4MB的三级高速缓存,使用0.13微米制程制造。

    分页缓存

    分页缓存<用java实现分页,并读取过程先读取缓存数据>

    spring-ehcache-redis两级缓存

    两级缓存在redis的方案上做一步优化,在缓存到远程redis的同时,缓存一份到本地进程ehcache(此处的ehcache不用做集群,避免组播带来的开销),取缓存的时候会先取本地,没有会向redis请求,这样会减少应用服务器<–...

    js数据缓存插件

    JS对数据做缓存,应用场景,有的时候通过ajax去获取一些不是经常变动数据的时候,不用每次去请求,直接从缓存中去读取 1. 将数据设置到缓存: JsCache.set(key,value,expirs), expirs也可以不设置,默认是60秒 2. ...

    三级缓存为4MB的英特尔64位至强处理器MP数据表

    Intel至强处理器MP是基于Intel NetBurst微体系结构的。...Intel至强处理器MP的第二个处理器家族的速度高达3GHz,该处理器家族拥有512KB二级高速缓存和1MB、2MB或4MB的三级高速缓存,使用0.13微米制程制造。

    hibernate 3中的缓存小结

    以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。...

    cpu二级缓存设置

    目前主流CPU都具有一级缓存和二级缓存,一级缓存用于暂时存储各类运算指令,并向CPU递送所需数据,二级缓存就是存储那些CPU处理时需要的,但是一级缓存无法存储的那些数据,以此进一步提高CPU访问速度,那么如何为...

    缓存数据的代码

    缓存数据的代码html,仅供参考............................................

    一个简单JS缓存数据类

    这是一个用于缓存JS对象像(JSON,数组)都可以的一个小工具,在开发项目过程中,会比较实用。 JS对数据做缓存,应用场景,有的时候通过ajax去获取一些不是经常变动数据的时候,不用每次...2. 读取缓存: JsCache.get(key)

    基于Retrofit2okhttp3的数据缓存cache技术修改了缓存时间能够设置缓存时间了.rar

    基于Retrofit2okhttp3的数据缓存cache技术修改了缓存时间能够设置缓存时间了.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    数据缓存的一个工具类

    数据缓存的一个工具类,方便攻城狮对一些基本数据类型进行数据缓存,特别还加了对集合的缓存,更加方便对app数据处理

    ASP.NET数据缓存

    VS2003实现数据缓存功能,有链接数据库。VB实现

    数据缓存技术

    数据缓存技术 快速交互响应、提高用户体验 一、数据缓存简介 二、数据缓存技术 1、页面级缓存 2、应用级缓存 3、数据库级缓存 4、静态文件缓存 三、内存、IO方式、内存+IOS 1、保存静态文件、本地文件,读写文件...

    springboot 使用spring cache缓存 和 缓存数据落地到redis

    本文是springboot 使用spring cache缓存 和 缓存数据落地到redis的研究笔记,为方便下载查看,特意分享了springboot 使用spring cache缓存 和 缓存数据落地到redis.pdf的文件。希望搭建对springboot 使用spring ...

Global site tag (gtag.js) - Google Analytics