问题标签 [second-level-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
424 浏览

java - 按需清空 Hibernate 缓存

我正在编写一个肥皂网络服务:Jboss + Hibernate + Java。PostrgreSQL 上的数据库。发布 web 服务后,它运行完美。

出于测试目的,我通过打开 pgAdmin 并手动更改行上的值来更改数据库上的数据。现在,问题是,Hibernate 不知道这些变化。直到我重新发布网络服务。

有什么方法可以告诉 Hibernate 清空缓存或重新加载数据库中的数据,以便获取最后可用的值?

谢谢!

0 投票
1 回答
8253 浏览

java - Hibernate 2nd Level 缓存似乎不起作用

我目前正在尝试使用 hibernate 附带的缓存提供程序让 hibernate 工作。

我在我的 hibernate.cfg.xml 文件中引用的 ecache.xml 中启用了默认缓存和特定于类的缓存。类/映射文件特定的缓存被定义为处理多达 20000 个对象。

但是,我没有看到任何性能提升,因为我在其中一个映射文件上打开了缓存映射,我正在使用它进行测试。

我的测试如下。

加载 10000 个特定映射文件的对象即时测试(这应该会击中数据库并成为瓶颈)。接下来我要加载相同的 10000 个对象,因为此时我希望缓存被命中并看到显着的性能提升。已尝试在我测试的休眠映射 xml 文件上同时使用“只读”和“读写”缓存映射。

我想知道他们是否需要做任何事情来确保在加载对象时缓存在数据库之前被命中?

请注意,作为测试的一部分,使用类似于下面的方法对这 10000 条记录进行分页(一次分页 1000 条记录)。

已经看到标准有一个缓存模式设置器(setCacheMode())所以我应该用它做些什么吗?

我注意到使用下面的统计代码,内存中有 10000 个对象(我想象中的冬眠脱水对象??),但由于某种原因,我得到 0 次命中,更令人担忧的是 0 次未命中,所以看起来它根本不会进入缓存当它进行查找时,即使统计代码似乎告诉我内存中有 10000 个对象。

关于我在做什么的任何想法?我认为我错过了这一事实很好,因为这意味着正在使用缓存,但我无法弄清楚为什么我没有得到任何缓存命中。setFirstResult()这是否取决于我使用和setFetchSize()使用标准的事实。

0 投票
3 回答
6356 浏览

hibernate - Hibernate 二级缓存 - 打印结果

我使用 @Cache 注释在我的应用程序中定义了二级缓存

我正在使用 findById 查询,如下所示:

其中 Company 是我从数据库中获得的对象。

如何检查 Company 对象是来自数据库还是来自缓存?

0 投票
1 回答
342 浏览

java - 了解休眠缓存

如果我在对象类中有这个方法:

我穿上@cacheObjectEntry穿上Object

我是否还需要像这样将@cache 放在 getObjectEntries 上:

如果我特别添加,是否需要为每个查询定义缓存

?

0 投票
2 回答
2168 浏览

.net - 使用 AppFabric 的 NHibernate 二级缓存

有没有人使用 AppFabric 进行二级缓存?

我知道它遵循与 Velocity ( nhibernate.caches.velocity )相同的 api,但想知道是否有人已经有使用它的一些生产经验,以及他们是否知道任何特定的提示或问题?

0 投票
2 回答
206 浏览

caching - 如何更改 CPU 缓存的关联性?

我想为不同的缓存关联设置收集 L2 缓存未命中的数据。谁能告诉我如何改变关联性?在 x86_64 Intel Core2 双核 CPU 上使用 Ubuntu

0 投票
1 回答
236 浏览

java - 需要解决一个查询缓存问题

我正在开发一个复式记帐系统,我需要在顺序 ID 中插入没有任何间隙的过帐记录。由于所有数据库访问都将通过 Web 应用程序进行,因此我使用同步静态变量来处理 id 生成:

简而言之,该服务的生命周期与当前的 httprequest 相关联,并由 spring 容器管理,此外我确保整个事务在请求结束时提交。同步块将处理任何并发,因此在 id 的序列中不会发生任何间隙。这里最大的问题是增加了数据库访问的开销,用于选择与特定条件匹配的最后插入的记录。我不希望这种情况发生,所以我猜这里的解决方案是使用一个缓存,该缓存将在第一次被选中时保存最后插入的记录,因此生成 id 不需要数据库访问。我的问题:有没有开箱即用的休眠方式来解决这个问题?我是休眠新手,听说过查询缓存,但我不确定如何使用它。我不 我不希望缓存保存我使用此服务存储的每个值,我只需要它来存储与特定条件匹配的最后插入的条目。例如,如果我执行了五次插入,其中两个匹配相同的条件“X”,另外三个匹配条件“Y”,缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。缓存将只存储两个对象(匹配每个条件的最后插入的对象)。我可以自己轻松地实现这一点,但我更愿意使用与 hibernate API 集成的解决方案。

0 投票
1 回答
821 浏览

java - Hibernate 3.5.5,二级缓存配置

实施休眠监控后,我注意到休眠执行的查询比统计中的查询字符串表执行的查询多。

统计截图:

替代文字

我认为,实现休眠二级缓存,尤其是休眠查询缓存可以帮助我减少查询执行量。

我在网上搜索,找到了许多用于休眠缓存的提供程序类。但我没有成功实现它(infinispan,EhCache)。

我的问题是:

  • 你认为,在查询字符串表包含的查询少得多的情况下,减少这种查询执行量是最合适的方法吗?
  • 您是否有一些使用最新版本的休眠(3.5.5 最终版)实现此二级缓存的示例。

预先感谢您的帮助。

此致,

弗洛伦特,

0 投票
1 回答
3045 浏览

java - JPA2.0 支持自定义用户类型和二级缓存

我正在尝试决定是否从Hibernate洒满全身切换到使用JPA2.0,从而成为可移植的提供商。
1.是否JPA2.0支持自定义用户类型?
2.我即将Terracotta作为二级缓存实现Hibernate,主要考虑到它的集群能力。我可以想象,但我实际上并不知道,这JPA2.0也定义了二级缓存提供程序的规范。如果我是对的,是否Terracotta实施?(如果有人可以指出我的入门TerracottaJPA我会很感激)。

提前致谢,
Ittai

0 投票
2 回答
16064 浏览

caching - 在 EHCACHE 中何时激活 overFlowToDisk?

我对元素的“overflowToDisk”属性有一些疑问?

1)我在这个网址上读到:

overflowToDisk 设置当内存存储达到最大限制时元素是否可以溢出到磁盘。

上面的“内存”是指为运行 EHCACHE 的 Java 进程分配的 JVM 内存,或者是否有任何参数可以指定 Cache 内存大小?

2)当运行EHCACHE的poces由于某种原因终止时,是否该磁盘被清除并且缓存中的所有内容都消失了?