`
linuxaid
  • 浏览: 6115 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Ehcache 2.4 正式版发布了,最大的改进就是缓存搜索功能

阅读更多
搜索使用方法:
Results results = cache.createQuery().includeKeys().addCriteria(age.eq(32).and(gender.eq("male"))).execute();

同时 Ehcache 支持了达 2TB 的数据,适合大规模应用。什么是可搜索的缓存?
你可对于定义的key和value的索引以及属性进行搜索。下面是一个定义可搜索缓存的配置:

<cache name="cache3" maxElementsInMemory="10000" >
     <searchable>
          <searchAttribute name="age"/>
          <searchAttribute name="gender" expression="value.getGender()"/>
     </searchable>
</cache>
搜索查询语言
Ehcache Search 引入了 EQL,这是一个面向对象的查询语言,特别对Java程序员来说非常熟悉的语法。
下面是一个完整的例子:

Query query = cache.createQuery();
query.includeKeys();
query.includeValues();
query.addCriteria(name.ilike("Greg*").and(gender.eq(Gender.MALE))).addOrderBy(age, Direction.ASCENDING).maxResults(10);
Results results = query.execute();
System.out.println(" Size: " + results.size());
for (Result result : results.all()) {
    System.out.println("Got: Key[" + result.getKey()+ "] Value class [" + result.getValue().getClass()+ "] Value [" + result.getValue() + "]");
}

EQL 功能很强大,有很多标准查询例如 ilike、lt、gt、between 等可用来构建复杂的查询,同时还提供一些聚合函数,例如 min, max, average, sum 以及 count 用来对结果进行统计。
和 NoSQL 相同的是,EQL 只用于单个缓存节点,不包括联合查询,也就是说不能在两个缓存 region 进行 join 查询。如果要对两个缓存region进行查询,你需要自己对搜索结果进行合并。
Ehcache 2.4 的 core 包中已经包含了搜索的功能。
分享到:
评论

相关推荐

    Ehcache分布式缓存与其在SpringBoot应用

    此外,Ehcache还具备在虚拟机重启后自动将缓存数据持久化到磁盘的功能,确保了数据的可靠性。 在分布式环境中,Ehcache通过使用JGROUP来实现分布式缓存。JGROUP是一个用于构建可靠集群通信的库,可以提供组成员资格...

    ehcache项目缓存技术

    Ehcache提供了一个简单易用的API,允许开发者轻松地在应用中集成缓存功能,从而减少对数据库的依赖,提高系统性能。 二、缓存原理与优势 缓存的基本原理是将常用但计算或获取成本较高的数据存储在内存中,以便快速...

    Java缓存框架 EhCache

    1. **内存管理**:EhCache将数据存储在内存中,提供了对缓存大小的限制,可以设置最大缓存容量,以防止过度消耗内存资源。当缓存满时,可以通过LRU(Least Recently Used)或LFU(Least Frequently Used)等淘汰策略...

    Spring 与Ehcache实现基于方法的缓存

    在IT行业中,Spring框架是Java领域最广泛应用的轻量级框架之一,它为开发者提供了强大的依赖注入(DI)和面向切面编程(AOP)功能。Ehcache则是一款广泛使用的开源缓存解决方案,用于提高应用程序性能,减少数据库...

    Ehcache 整合Spring 使用页面、对象缓存

    Spring 对 Ehcache 的集成非常便捷,允许开发者轻松地在Spring应用中使用缓存功能。整合Ehcache的主要步骤包括: 1. **准备工作**: - 获取Ehcache的相关jar包,包括`ehcache-core`用于对象和数据缓存,以及`...

    springMVC+Ehcache的各级缓存(包括页面缓存)

    SpringMVC和Ehcache的结合使用,能够构建一个高效、灵活的多级缓存系统,其中包括页面缓存。下面将详细介绍SpringMVC与Ehcache集成后的各级缓存机制以及页面缓存的实现。 1. SpringMVC简介: SpringMVC是Spring框架...

    Ehcache缓存

    **Ehcache缓存** Ehcache是一种广泛使用的开源Java分布式缓存系统,它为高性能应用程序提供了内存存储和缓存解决方案...在实际项目中,根据业务场景选择合适的缓存策略,优化缓存区域,是发挥Ehcache最大价值的关键。

    spring + ehcache + redis两级缓存

    当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...

    ehcache页面缓存技术

    ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache页面缓存技术ehcache...

    ehcache缓存配置详解

    ehcache 缓存配置详解 Ehcache 是一个流行的 Java 缓存框架,提供了强大的缓存机制,帮助开发者提高应用程序的性能和可扩展性。 Ehcache 的配置主要包括 diskstore、defaultCache、cache 三个部分,这三个部分的...

    cache/ehcache缓存使用

    本文将详细讲解"cache/ehcache缓存使用"的相关知识点,包括缓存的基本概念、Ehcache的介绍、以及如何在Java应用中使用Ehcache进行缓存操作。 首先,我们要理解什么是缓存。缓存是一种存储技术,它临时存储常用或...

    EHCache缓存技术介绍

    【EHCache缓存技术介绍】 缓存技术是提高软件系统性能的重要手段,特别是在处理大量数据时,通过将常用数据存储在内存中,可以显著减少对硬盘或数据库的访问,从而加快数据获取速度。EHCache是一种广泛使用的开源...

    SpringBoot 集成Ehcache实现缓存

    Ehcache支持多种缓存策略,包括内存和磁盘存储,提供了缓存加载器、缓存扩展、缓存异常处理等高级功能,并且支持REST和SOAP API接口。 #### 二、Spring Boot与Ehcache集成 在Spring Boot项目中集成Ehcache可以显著...

    ehcache二级缓存配置文件

    **Ehcache二级缓存配置详解** Ehcache是一个广泛使用的开源Java缓存库,它提供了内存和磁盘存储的缓存解决方案,适用于提高应用程序性能和减少数据库负载。在Java应用中,尤其是在Spring框架中,Ehcache常被用作二...

    springboot整合Ehcache组件,轻量级缓存管理

    Ehcache缓存简介 1、基础简介 EhCache是一个纯Java的进程内缓存框架,具有快速、上手简单等特点,是Hibernate中默认的缓存提供方。 2、Hibernate缓存 Hibernate三级缓存机制简介: 一级缓存:基于Session级别分配...

    配置EhCache二级缓存

    由于其简单易用且功能强大,EhCache 成为了 Java 应用程序中常用的缓存解决方案之一。特别是对于单机应用而言,EhCache 是一个理想的二级缓存选择。在Hibernate框架中,EhCache被作为内置缓存插件支持,这使得开发者...

    hibernate缓存ehcache用法

    Ehcache是Hibernate常用的二级缓存解决方案,它可以提高应用程序的性能和响应速度。这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。...

    缓存框架-Ehcache学习笔记

    **缓存框架 Ehcache 学习笔记** Ehcache 是一个广泛使用的开源 Java 缓存框架,它在处理大量数据的高性能应用中扮演着重要角色。Ehcache 提供了本地内存缓存、磁盘存储以及分布式缓存的能力,使得应用程序能够快速...

    mybatis添加ehcache缓存支持

    为了提高性能和减少对数据库的直接访问,MyBatis 提供了缓存功能,而Ehcache 是一个广泛使用的开源Java缓存库,可以集成到MyBatis 中以实现高效的缓存管理。 在MyBatis 中添加Ehcache 缓存支持,首先需要确保项目...

Global site tag (gtag.js) - Google Analytics