本文主要是介绍Cached缓冲池存取数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/**
* 创建一个cache
*/
public void cache(String keyword, String cacheName) {
// 内存中保存的Element的最大数量
int maxEntriesLocalHeap = 100;
CacheConfiguration cacheConfiguration = new CacheConfiguration(cacheName, maxEntriesLocalHeap);
cacheConfiguration.overflowToOffHeap(false);
Cache param = cacheManager.getCache(cacheName);
if (param == null) {
Cache cache = new Cache(cacheConfiguration);
// 使用默认配置创建CacheManager
CacheManager cacheManager = CacheManager.create();
// 只有添加到CacheManager中的Cache才是有用的
cacheManager.addCache(cache);
}
}
/**
* 存入key和value
* 若key值已存在,则value+1
*/
public void create(String keyword, String cacheName) {
// 检验该关键字是否在缓冲池中
Cache cache = cacheManager.getCache(cacheName);
Element ele = cache.get(keyword);
if (ele != null && ele.getObjectKey().equals(keyword)) {
// value = value + 1
Integer value = Integer.valueOf(ele.getObjectValue().toString()) + 1;
cache.put(new Element(keyword, value));
System.out.println("---key---"+ele.getObjectKey()+"||---value---" + value);
} else {
// 创建一个
Cache newCache = cacheManager.getCache(cacheName);
Element element = new Element(keyword, 1);
newCache.put(element);
}
}
/**
* 读取键值后排序
*/
@SuppressWarnings({ "unchecked" })
public Mapsort(String cacheName) {
Mapmap = new TreeMap();
Cache cache = cacheManager.getCache(cacheName);
Listkeys = cache.getKeys(); // 获取缓冲池中所有的没有挂掉的key
String key = null;
Integer value = null;
if (keys != null && keys.size() > 0) {
// 根据key值,查出value
for (int i=0; i> list = new ArrayList >(map.entrySet()); //然后通过比较器来实现排序 Collections.sort(list,new Comparator >() { //降序排序 public int compare(Entry o1, Entry o2) { return o2.getValue().compareTo(o1.getValue()); } }); Map newMap = new TreeMap (); if (list != null && list.size() > 0) { // for(Map.Entry mapping:list){ // System.out.println(mapping.getKey()+":"+mapping.getValue()); // } for (int i=0; i
这篇关于Cached缓冲池存取数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!