当前位置:  软件>java软件

Java 缓存框架 Imcache

    来源:    发布时间:2014-12-30

    本文导语:  Imcache是一个新的Java缓存库包,它支持各种已应用至今高速缓存模型。Imcache打算通过提供管理缓存数据的方法,以加快应用程序。它提供了从小型应用到大规模应用解决方案。 支持堆外off-heap是其特点,这大概是hazelcast和guava...

Imcache是一个新的Java缓存库包,它支持各种已应用至今高速缓存模型。Imcache打算通过提供管理缓存数据的方法,以加快应用程序。它提供了从小型应用到大规模应用解决方案。

支持堆外off-heap是其特点,这大概是hazelcast和guava没有的,而 Terrcotta BigMemory则是收费的。堆外内存突破JVM的内存限制,而且不受垃圾机制影响。

BigMemory是用来避免GC对堆的开销,从几MB或GB大。 BigMemory通过直接的ByteBuffers使用JVM进程的内存地址空间,不像其他原生Java对象接受GC管束。

堆是内存中动态分配对象居住的地方。如果使用new一个对象,它就被分配在堆内存上。这是相对于Stack,如果你有一个局部变量则它是位于Stack栈内存空间。 

EHCache的 off-heap将你的对象从堆中脱离出来序列化,然后存储在一大块内存中,这就像它存储到磁盘上上一样,但它仍然在RAM中。对象在这种状态下不能直接使用,它们必须首先反序列化。也不受垃圾收集。序列化和反序列化会影响性能。(FST-serialization还是很快)。

使用堆外内存能够降低GC导致的暂停。

应用场景:
1.Session会话缓存,保存不激活的用户session,比如用户没有正常退出,我们也无法确定他会不会短时间内再回来,将其会话存到堆外内存。一旦再次登录,无需访问数据库可再次激活。

2.计算结果的缓存,大量查询的结果等,击中率比较低的都可以迁移到堆外。

maven依赖包:

  com.cetsoft
  imcache
  0.1.0

Imcache支持堆内和堆外off-heap 缓存,也将支持分布式缓存。
使用方式:

Cache cache = CacheBuilder.heapCache().
cacheLoader(new CacheLoader() {
    public User load(String key) {
        return userDAO.get(key);
    }
}).evictionListener(new EvictionListener{
    public onEviction(String key, User user){
        userDAO.save(key, user);
    }
}).capacity(10000).build();
//If there is not a user in the heap cache it'll be loaded via userDAO.
User user = cache.get("#unique identifier"); 
User newUser = new User("email", "Richard", "Murray")
//When maximum value for cache size is reached, eviction event occurs.
//In case of eviction, newUser will be saved to db.
cache.put(newUser.getEmail(), newUser);

    
 
 

您可能感兴趣的文章:

  • java缓存工具 SimpleCache
  • Java缓存框架 Ehcache
  • Java缓存系统 JCACHE(FKache)
  • Java 缓存系统 JBossCache
  • Java缓存系统 OSCache
  • Java缓存服务器 jmemcached
  • Java 集群缓存系统 Cacheonix
  • Java两级缓存框架 J2Cache
  • java模拟hibernate一级缓存示例分享
  • 基于Java实现缓存Cache的深入分析
  • java中Spring框架介绍及如何实现对Bean的管理
  • Java批量作业框架 Java Batch Job Framework
  • java 框架Hibernate的generator属性的七种class介绍
  • Java神经网络框架 Encog for Java
  • Java简易MVC框架 etmvc
  • Java Web开发框架 Chrysalis
  • Java神经网络框架 Neuroph
  • Java图像处理框架 Marvin
  • Java企业应用开发框架 Portofino
  • Java媒体框架 JMF
  • Java的Web应用框架 EvaServer
  • Java 应用自动更新框架 Jupidator
  • Java的Web框架 ActiveWeb
  • Java的CRUD框架 Crank
  • Java的RESTful框架 Kauri
  • Java桌面程序开发框架 Viewa
  • 轻量级java框架 NLF框架
  • Java敏捷开发框架 JADE
  • Java数据持久层框架 MyBatis
  • Java Web框架 Waffle
  • Flex和Java的框架 Anvil Flex
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3