zoukankan      html  css  js  c++  java
  • 技术集锦

    1.hibernate缓存、二级缓存是怎么实现的,除了oscache还引用了哪些缓存,缓存的原理是怎样的,如果自己去模拟二级缓存该怎么写,假如数据被不停地修改或更新,那怎样保证缓存中的数据是最新的?

      

    (1)一级缓存就是Session级别的缓存,一个Session做了一个查询操作,它会把这个操作的结果放在一级缓存中,如果短时间内这个

    session(一定要同一个session)又做了同一个操作,那么hibernate直接从一级缓存中拿,而不会再去连数据库,取数据;

    (2)二级缓存就是SessionFactory级别的缓存,顾名思义,就是查询的时候会把查询结果缓存到二级缓存中,如果同一个sessionFactory

    创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿结果,而不会再去连接数据库;

    (3)Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理

    的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓

    存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存;

    OScache特点:

    缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。
    拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。
    永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。
    支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。
    缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)
     

    所谓缓存,就是将程序或系统经常要调用的对象存在内存中,以便其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。

    缓存主要可分为二大类: 

    一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;  

    二、内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查. 

    使用缓存的原则就是:尽量用低开销的计算代替高开销的计算。比如直接从其他数据库 查询的开销要远高于内存中的计算返回,网络请求要远高于本地(同一vm中)请求。

     memcache:分布式应用 内存对象缓存系统开发,占用其他机子的内存。很多互联网 ,负载均衡三台(以三台为例)其他web服务器 可以共享一台memcache的资源。传递的信息以键值对的形式存储。传递的数据要实现序列化。

    oscache:页面级缓存(网上强调最多的东西),占用本机的内存资源。可 以选择缓存到硬盘,如存取到硬盘重启服务也可重新获得上次持久化的资源,而如果缓存到内存就不行。一般没必要缓存到硬盘,因为i/o操作也是比较耗资源,和从其他数据库 取往往优势很小。oscache存取数据的作用域分为application和session两种。

     ehcache:hibernate 缓存,dao缓存,安全性凭证缓存(acegi),web缓存,应用开发持久化和分布式应用 缓存。

    如何保证缓存和数据库数据一致性:http://www.36dsj.com/archives/43950

    RPC原理分析:http://blog.csdn.net/mindfloating/article/details/39474123

         

  • 相关阅读:
    虚拟机里的mysql怎么外连
    Pytest跳过执行之@pytest.mark.skip()详解大全
    判断字符是什么,返回True或者False
    s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"(sort与sorted、reverse与reversed的区别)
    1、输入一个姓名,判断是否姓王 2、strip和replace的用法
    python 运算符
    控制语句--while循环
    控制语句-if
    函数
    控制语句--for循环
  • 原文地址:https://www.cnblogs.com/chengJAVA/p/5375229.html
Copyright © 2011-2022 走看看