seq搜索引擎优化至少包括那几步?(引出hibernate的第二级缓存,为什么还要有二级缓存,如何配置Hibernate的二级缓存)

优采云 发布时间: 2021-11-28 02:01

  seq搜索引擎优化至少包括那几步?(引出hibernate的第二级缓存,为什么还要有二级缓存,如何配置Hibernate的二级缓存)

  按照以下思路回答:(1)首先解释清楚什么是缓存,(2)另外,用hibernate Session是一级缓存,也就是用一级缓存,为什么有没有二级缓存?,(3)最后说一下如何配置Hibernate的二级缓存。

  (1)Cache就是把之前从数据库中查询到使用过的对象存储在内存中(一种数据结构)。这个数据结构通常或者类似于Hashmap。当一个对象以后要使用的时候,首先Query缓存中是否有这个对象,如果有,则使用缓存中的对象,如果没有,则查询数据库,将查询到的对象保存在缓存中以备下次使用。以下是缓存的伪代码:

  介绍hibernate的二级缓存,使用如下伪代码分析Cache的实现原理

  道

  {

  hashmap map = newmap();

  用户 getUser(整数)

  {

  用户 user =map.get(id)

  如果(用户==空)

  {

  用户 = session.get(id);

  map.put(id,user);

  }

  返回用户;

  }

  }

  道

  {

  缓存缓存 = 空

  设置缓存(缓存缓存)

  {

  this.cache = 缓存

  }

  用户 getUser(int id)

  {

  如果(缓存!=空)

  {

  Useruser = cache.get(id);

  如果(用户==空)

  {

  用户 = session.get(id);

  cache.put(id,user);

  }

  返回用户;

  }

  returnsession.get(id);

  }

  }

  Hibernate的Session级缓存的缓存功能不明显,应用价值不大。Hibernate的二级缓存是为Hibernate配置一个全局缓存,允许多个线程和多个All事务可以共享这个缓存。我们希望一个人用过,其他人也可以用。会话没有这样的效果。

  (3)二级缓存是独立于Hibernate的软件组件,属于第三方产品。很多厂商和组织都提供缓存产品,比如EHCache和OSCache。在Hibernate中使用二级缓存,首先在hibernate.cfg.xml配置文件中配置使用哪个厂商的缓存产品,然后配置缓存产品自己的配置文件,最后配置Hibernate中哪些实体对象应该收录在二级缓存的管理中。二级缓存的原理,有了这个思路,Hibernate二级缓存的配置就很简单了 扩展知识:一个SessionFactory可以关联一个二级缓存,即一个二级缓存只能负责在数据库中缓存数据,使用Hibernate的二级缓存时,注意不要让其他应用程序或SessionFactory改变当前数据库中的数据,以免缓存的数据与数据库中的实际数据不一致。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线