Tag: 缓存

如何在不同的camel路由上的方法之间共享对象

我在网上搜索没有运气的东西,我觉得这很简单,但显然不是。 我想要做的就是在一个在camel路由中调用的方法中创建一个HashSet,然后将这个HashSet传递给另一个camel路由中的方法。 我的搜索返回的是我应该使用缓存,但我找不到任何示例(一个简单的例子),它将告诉我如何实现它。 第一个路径中的方法“findProperties”创建一个HashSet,我想在“parseFile”方法的第二个路径中使用它。 from(“file:{{List}}?noop=true”) .autoStartup(true) .unmarshal().csv() .to(“bean:ParserUtils?method=findProperties”) .end(); from(“file:{{Path}}?move={{processedPath}}”) .autoStartup(true) .unmarshal().csv() .to(“bean:Parser?method=parseFile”) .end() 我真的很感激在缓存或其他解决方案中获取和设置对象的简单示例。

经常使用的元数据Hashmap

是否有任何静态大小哈希表的实现将条目限制为最近或最常用的元数据? 我不想自己跟踪这些信息。 我知道大多数缓存组件都会跟踪这一点,但我宁愿不介绍很多新的依赖项。

Java8流操作是否缓存?

我在运行Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz (2 CPUs), ~2.7GHz PC上运行以下示例代码 String format = “%7s run taken %6d micro seconds %5d findAny”; // First run long start = System.nanoTime(); int rand = IntStream.range(0, 100000).parallel().findAny().getAsInt(); long end = System.nanoTime(); System.out.println(String.format(format, “First”, ((end – start) / 1000), rand)); // Subsequent runs for (int i = 0; i […]

Google Guava Cache – 在运行时更改驱逐超时值

我使用以下内容: LoadingCache inQueueLoadingCache = CacheBuilder.newBuilder() .expireAfterWrite(120, TimeUnit.SECONDS) .removalListener(inQueueRemovalListener) .build(inQueueCacheLoader); 每120秒后,缓存条目被逐出,并按预期工作。 我的问题是:如何更改当前缓存的超时值,比如120到60秒? 在此更改期间缓存条目会发生什么?

hibernate分布式二级缓存选项

这不是一个问题,但我正在寻找有使用以下一项或多项经验的人的意见/建议: 带有RMI的EhCache EhCache与JGroups EhCache与兵马俑 Gigaspaces数据网格 一些背景知识:我们的应用程序只读取大部分内容,但有一些用户数据是可读写的,有些只是写入(也可能是合理的不准确)。 此外,如果有工具可以让我们每隔一段时间或通过管理员干预来刷新和填充缓存,那将会很不错。 关于第一个选项 – 是否有任何关于RMI开销和Java序列化性能的问题?

spring – 使用谷歌番石榴缓存

我试图在我的春季应用程序中使用谷歌番石榴缓存,但结果永远不会缓存。 这是我的步骤: 在conf文件中: @EnableCaching @Configuration public class myConfiguration { @Bean(name = “CacheManager”) public CacheManager cacheManager() { return new GuavaCacheManager(“MyCache”); } } 在课堂上我想使用缓存: public class MyClass extends MyBaseClass { @Cacheable(value = “MyCache”) public Integer get(String key) { System.out.println(“cache not working”); return 1; } } 然后当我打电话时: MyClass m = new MyClass(); m.get(“testKey”); m.get(“testKey”); m.get(“testKey”); 它每次都进入function而不使用缓存:console: cache not […]

如何为Java应用程序创建简单的分布式Map?

我正在寻找一个Map来分享在不同机器上运行的Java Web应用程序的两个实例之间的信息。 对此映射的读取和写入需要非常快,并且不必是事务性的,即如果一个实例有一段时间的陈旧数据就可以。 有什么建议? 我需要跟踪用户上次在应用程序中执行某些操作的情况,因此如果此信息已过期,则非常糟糕。 速度和易用性很重要。 我不希望写入Map以影响响应时间。

JPA和枚举类型

我在一个JPA实体中使用枚举类型的一个字段: @Enumerated(value=EnumType.STRING) private Temperament temperament = Temperament.MINEUR_PUR; 我的枚举在我的实体内声明: @Entity public class Joueur implements Serializable { ….. public enum Temperament{ MINEUR_PUR(30), MINEUR(10), NEUTRE(0), RAIDEUR(-10), RAIDEUR_PUR(-30); private int temperament_prod_mines; private Temperament(int temperament_prod_mines){ this.temperament_prod_mines = temperament_prod_mines; } public int getTemperament_prod_mines() { return temperament_prod_mines; } public void setTemperament_prod_mines(int temperament_prod_mines) { this.temperament_prod_mines = temperament_prod_mines; } } } 这是工作,但当我将我的枚举“外化”在它自己的文件中时,它不再起作用了: 引发者:exception[EclipseLink-7151](Eclipse Persistence […]

Ignite for Hibernate L2非常慢

我有Hibernate,Spring,PostgreSQL,MongoDB,Neo4j和ElasticSearch使用EhCache进行Hibernate L2和Spring Cache的系统,它运行良好。 我正在测试Ignite,但是当我把Ignite用于Hibernate L2时,系统变得极其缓慢(Spring Cache工作得很快),我让JProfiler看看什么真的很慢,我只是看到跟随方法非常慢: org.postgresql.core.VisibleBufferedInputStream.read(byte[ ], int, int) org.postgresql.jdbc2.AbstractJdbc2Statement.parseSql javax.persistence.EntityManager.find 这对我来说没什么意义。 我正在使用分支1.5.1-2中的Ignite 1.5.1.final-SNAPSHOT和https://github.com/apache/ignite/pull/388 (我做了一个更改,自动为Hibernate L2创建缓存),我测试了1.4.0,问题是一样的。 Ignite的配置: @Configuration public class CacheConfiguration { @Bean public DynamicClassLoaderWrapper dynamicClassLoaderWrapper() { return new DynamicClassLoaderWrapper(this.getClass().getClassLoader()); } @Bean @SuppressWarnings(“unchecked”) public CacheManager cacheManager() { IgniteConfiguration igniteConfiguration = new IgniteConfiguration(); igniteConfiguration.setGridName(“meceap-grid”); igniteConfiguration.setClassLoader(dynamicClassLoaderWrapper()); igniteConfiguration.setCacheConfiguration(this.createDefaultCache(“br.com.bruno.model.*”), this.createDefaultCache(“org.hibernate.cache.spi.UpdateTimestampsCache”), this.createDefaultCache(“org.hibernate.cache.internal.StandardQueryCache”)); SpringCacheManager springCacheManager = new SpringCacheManager(); springCacheManager.setConfiguration(igniteConfiguration); springCacheManager.setDynamicCacheConfiguration(this.createDefaultCache(null)); […]

google common cache – maximumSize的默认值(和其他“可选”设置) – 想要一个使用所有“可用”内存的缓存

我刚刚通过搜索缓存API找到了Guava (它非常适合我的需求)。 但是在阅读wiki和Javadoc时出现了一个问题 – CacheBuilder可以采用什么设置的默认值? Javadoc声明“这些function都是可选的”和“使用默认设置构造一个新的CacheBuilder实例,包括强键,强值,并且不会自动驱逐任何类型。” 在我看来, maximumSize一个很好的默认值是相对于Runtime.getRuntime().freeMemory(); 最后,我想要一个使用给定系统上可用内存的缓存。 所以我需要一个驱逐策略,询问freeMemory()有多少可用(可能相对于Runtime.getRuntime().maxMemory() )