当前位置: 首页 > 面试题库 >

轻量级Java对象缓存API

孙泳
2023-03-14
问题内容

我正在寻找Java内存对象缓存API。有什么建议吗?您过去使用过什么解决方案?

当前

现在,我只是在使用地图:

Map cache = new HashMap<String, Object>();
cache.put("key", value);

要求

我需要扩展缓存以包括以下基本功能:

  • 最大尺寸
  • 生存时间

但是,我不需要更复杂的功能,例如:

  • 来自多个进程的访问(缓存服务器)
  • 持久性(到磁盘)

意见建议

内存中缓存:

  • Guava CacheBuilder-活动开发。请参阅此演示文稿。
  • LRUMap-通过API配置。没有TTL。并非专门用于缓存。
  • whirlycache -XML配置。邮件列表。上次更新时间:2006年。
  • cache4j -XML配置。俄语文档。上次更新时间:2006年。

企业缓存:

  • JCS-属性配置。广泛的文档。
  • Ehcache -XML配置。广泛的文档。到目前为止,根据Google的点击量最受欢迎。

问题答案:

EHCache非常好。您可以创建一个内存缓存。查看他们的代码示例,以获取创建内存中缓存的示例。您可以指定最大大小和生存时间。

EHCache确实提供了一些高级功能,但是如果您对使用它们不感兴趣,那就不要。但是很高兴知道,如果您的需求发生变化,它们就会在那里。

这是内存中的缓存。用代码创建,没有配置html" target="_blank">文件。

CacheManager cacheManager = CacheManager.getInstance();
int oneDay = 24 * 60 * 60;
Cache memoryOnlyCache = new Cache("name", 200, false, false, oneDay, oneDay);
cacheManager.addCache(memoryOnlyCache);

创建一个可容纳200个元素且ttl为24小时的缓存。



 类似资料:
  • 本文向大家介绍浅谈Android轻量级的数据缓存框架RxCache,包括了浅谈Android轻量级的数据缓存框架RxCache的使用技巧和注意事项,需要的朋友参考一下 请求网络数据是在安卓开发中使用最频繁的一个功能,网络请求的体验决定了用户对整个APP的感觉,因此合理地使用缓存对网络请求的数据进行处理极为重要。合理的进行缓存和网络请求,可以为APP带来更优秀的体验。图片的缓存有Picasso、Gl

  • 有时缓存代码中的单个对象会很有用,比如有些需要很大开销获取的数据或者一些结果集不怎么变化的数据库查询。你可以使用一些缓存软件将这些数据存放在内存中以便下次高速获取。如果你获得数据后把他们存起来,下次请求直接从缓存里面获取数据,在减少数据库负载的同时能极大提高性能。 许多流行的字节码缓存方案也能缓存定制化的数据,所以更有理由好好使用它们了。APCu、XCache 以及 WinCache 都提供了 A

  • 问题内容: 寻找一个适用于Android(SDK 7+)类的简单开源非copyleft缓存。 目的主要是异步存储所获取的s(因此,我不需要将此功能包含在缓存类中)。 我为此目的使用了weakList,这自然是一个糟糕的解决方案,使用Guava缓存会更好一些,但仍然不够好。 最好是,缓存能够存储任何可序列化的对象,而不仅仅是a ,并且当对象添加到缓存中时,我可以轻松清除对象中使用的某些标记。 最好的

  • 当你使用本地(在内存中)缓存时,服务器可以缓存一些信息并快速地检索它,但是其他服务器不能访问这个缓存数据,他们需要到数据库中查询同样的信息。 如果你喜欢使用分布式缓存让其他服务器访问缓存的数据,由于它有一些序列化/反序列化和网络延迟开销,则需要注意:在某些情况下,它可能会降低性能。 缓存需要处理的另一个问题:缓存失效。 There are only two hard things in Compu

  • 1、一级缓存:指的是mybatis中sqlSession对象的缓存,当我们执行查询以后,查询的结果会同时存入sqlSession中,再次查询的时候,先去sqlSession中查询,有的话直接拿出,当sqlSession消失时,mybatis的一级缓存也就消失了,当调用sqlSession的修改、添加、删除、commit()、close()等方法时,会清空一级缓存。 2、二级缓存:指的是mybati

  • 我读到“因此当使用Integer.ValueOf创建对象或直接为-128到127范围内的整数赋值时,将返回相同的对象。” 但这里的输出是“not” 有人能解释一下吗?