EHcache

// net.sf.ehcache.CacheManager manager =
// net.sf.ehcache.CacheManager.newInstance();
CacheManager manager = CacheManager.create();
CacheConfiguration cacheConfig = new CacheConfiguration();
// 定义属性查询
// 指定当前缓存的最大堆内存值为100M
cacheConfig.name("testCache").maxBytesLocalHeap(100, MemoryUnit.MEGABYTES);
// 新建一个Searchable对象
Searchable searchable = new Searchable();
// 给Cache配置Searchable对象,表明该Cache是一个可查询的Cache
cacheConfig.searchable(searchable);


// Searchalbe对象添加查询属性
searchable.addSearchAttribute(new SearchAttribute().name("name"));
// 使用CacheConfig创建Cache对象
Cache cache = new Cache(cacheConfig);
// 把Cache对象纳入CacheManager的管理中
manager.addCache(cache);


Cache testCache = manager.getCache("testCache");


// 模糊查询测试
User u = null;
for (int i = 0; i < 100; i++) {
u = new User(i, "22" + i, "" + i + "王鑫");
testCache.put(new Element(u.getId(), u));
}
// 获取名称为name的可查询属性Attribute对象
Attribute<String> name = testCache.getSearchAttribute("name");
// 创建一个用于查询的Query对象
Query query = testCache.createQuery();
query.includeKeys();
query.includeValues();
// 给当前query添加一个筛选条件——可查询属性name的值等于wanjunjun
query.addCriteria(name.ilike("2"));
// 执行查询操作,返回查询结果Results
Results results = query.execute();
// 获取Results中包含的所有的Result对象
List<Result> resultList = results.all();
for (Result result : resultList) {
// 结果中包含key时可以获取key
if (results.hasKeys()) {
System.out.println(result.getKey());
}
// 结果中包含value时可以获取value
if (results.hasValues()) {
System.out.println(((User) result.getValue()).getName());
}
}
manager.shutdown();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值