BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ehcache 3.0发布,修补了API并支持非堆存储

| 作者 Matt Raible 关注 12 他的粉丝 ,译者 张卫滨 关注 13 他的粉丝 发布于 2016年5月5日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Terracotta发布了分布式缓存技术Ehcache的3.0版本,支持了一些重要的新特性。首先,它的API进行了重构,现在使用了Java的泛型。性能也有所提升,同时还增加了对javax.cache API(JSR-107)和非堆存储功能的支持。因为支持javax.cache API,Ehcache 3.0与Spring的缓存实现了完全的兼容。

开发人员可以通过如下的坐标将该版本的Ehcache集成到Maven项目之中:

<dependency>
  <groupId>org.ehcache</groupId>
  <artifactId>ehcache</artifactId>
  <version>3.0.0</version>
</dependency>

对于Gradle用户来说,需要这样声明:

`compile group: 'org.ehcache', name: 'ehcache', version: '3.0.0'`

Ehcache的Java API使用了生成器(builder)方式,从而提供了一种很流畅的配置方式。我们可以使用CacheManager来与Cache进行交互:

CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
    .withCache("myCache",
        CacheConfigurationBuilder.newCacheConfigurationBuilder(
            Long.class, String.class, ResourcePoolsBuilder.heap(10)))
    .build(true);

Cache myCache =
    cacheManager.getCache("myCache", Long.class, String.class);

myCache.put(1L, "First!");
String value = myCache.get(1L);
cacheManager.removeCache("myCache");
cacheManager.close();

Ehcache还提供了新的UserManagedCache,借助它可以创建非CacheManager管理的缓存,比如分配短生命周期的缓存(参见配置指南了解更多信息)。

与之前的版本类似,Ehcache 3.0提供了存储层,这样的话,我们就能将频繁使用的数据放在较快的分层,而将很少使用的数据放在更慢的分层。

如下是一个样例,展示了如何为堆、非堆以及磁盘存储配置资源池。在这个样例中,为磁盘存储提供了一个路径并创建了三个不同的资源池。第一个资源池的大小是存放10个条目,第二个资源池的是非堆的,它最多存储1MB,最后一个磁盘资源池被设置为20MB。

PersistentCacheManager persistentCacheManager = 
    CacheManagerBuilder.newCacheManagerBuilder()
        .with(CacheManagerBuilder.persistence(
            getStoragePath() + File.separator + "myData"))
        .withCache("threeTieredCache",
            CacheConfigurationBuilder.newCacheConfigurationBuilder(
                Long.class, String.class,
                ResourcePoolsBuilder.newResourcePoolsBuilder()
                    .heap(10, EntryUnit.ENTRIES)
                    .offheap(1, MemoryUnit.MB)
                    .disk(20, MemoryUnit.MB)
                )
            ).build(true);

Ehcache邀请开发人员为其提供贡献内容(参见贡献文档 来了解更多信息)。对于一般的问题和帮助请求,参考ehcache的用户邮件列表

查看英文原文Ehcache 3.0 Released with Revamped API and Off-Heap Storage

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT