Ehcache基于java API实现
程序员文章站
2023-12-30 11:03:58
上代码: 顺利完毕!!! 有疑惑请留言,如若不对之处,感谢提出; ......
上代码:
1 package com.utils.cacheutils; 2 3 import com.situopenapi.constant.ehcacheconstants; 4 import com.situopenapi.constant.gestureimageconstants; 5 import com.situopenapi.data.systemutils.execresult; 6 import net.sf.ehcache.cache; 7 import net.sf.ehcache.cachemanager; 8 import net.sf.ehcache.element; 9 10 import java.util.list; 11 12 /** 13 * 使用ehcache进行数据的缓存 14 * 15 */ 16 public class ehcachemanager { 17 18 private static cachemanager cachemanager; 19 20 static { 21 cachemanagerinit(); 22 } 23 24 /** 25 * ehcacheconstants.cache_name, cache name 26 * ehcacheconstants.max_elements_memory, 缓存最大个数 27 * ehcacheconstants.whether_overflow_todisk, 内存不足时是否启用磁盘缓存 28 * ehcacheconstants.whether_eternal, 缓存中的对象是否为永久的,如果是,超过设置将被忽略,对象从不过期 29 * ehcacheconstants.timetoliveseconds, 缓存数据的生存时间;元素从构建到消亡的最大时间间隔值,只在元素不是永久保存时生效;若该值为0表示该元素可以停顿无穷长的时间 30 * ehcacheconstants.timetoidleseconds 对象在失效前的允许闲置时间,仅当eternal=false对象不是永久有效时使用;可选属性,默认值是0可闲置时间无穷大; 31 */ 32 private static cachemanager cachemanagerinit() { 33 if (cachemanager == null) { 34 35 36 //创建一个缓存管理器 37 cachemanager = cachemanager.create(); 38 //建立一个缓存实例 39 cache memoryonlycache = new cache(ehcacheconstants.cache_name, ehcacheconstants.max_elements_memory, ehcacheconstants.whether_overflow_todisk, ehcacheconstants.whether_eternal, ehcacheconstants.timetoliveseconds, ehcacheconstants.timetoidleseconds); 40 //在内存管理器中添加缓存实例 41 cachemanager.addcache(memoryonlycache); 42 return cachemanager; 43 } 44 return cachemanager; 45 } 46 47 /** 48 * 向缓存中添加元素 49 * 50 * @param key 51 * @param value 52 */ 53 public static void put(string ehcacheinstancename, string key, execresult<object> value) { 54 cache cache = cachemanager.getcache(ehcacheinstancename); 55 cache.put(new element(key, value)); 56 57 } 58 59 /** 60 * 根据key获取对应的value值 61 * 62 * @param key 63 * @return 64 */ 65 public static object getvalue(string ehcacheinstancename, object key) { 66 cache cache = cachemanager.getcache(ehcacheinstancename); 67 object value = cache.get(key).getobjectvalue(); 68 return value; 69 } 70 71 /** 72 *获取缓存中最新的结果 73 * 74 * @return 最后一次添加的结果集 75 */ 76 public static object getlastvalue(string ehcacheinstancename) { 77 boolean flag = true; 78 79 cache cache = cachemanager.getcache(ehcacheinstancename); 80 list keys = cache.getkeys(); 81 string string = getmaxkey(keys).tostring(); 82 return getvalue(ehcacheinstancename, string);; 83 } 84 85 86 /** 87 * 在缓存管理器中获取一个缓存实例 88 * 返回缓存数据个数 89 * 90 * @return 91 */ 92 public static int getcachesize(string ehcacheinstancename) { 93 cache cache = cachemanager.getcache(ehcacheinstancename); 94 return cache.getsize(); 95 } 96 97 private static object getmaxkey(list source) { 98 99 long[] target = new long[source.size() - 1]; 100 for (int i = 0; i < source.size() - 1; i++) { 101 target[i] = long.parselong((string) source.get(i)); 102 } 103 long maxkey = target[0]; 104 for (int i = 0; i < target.length; i++) { 105 if (maxkey < target[i]) { 106 maxkey = target[i]; 107 } 108 } 109 return maxkey; 110 } 111 112 }
顺利完毕!!!
有疑惑请留言,如若不对之处,感谢提出;
推荐阅读
-
Ehcache基于java API实现
-
互联网并发与安全系列教程(10) -基于URL转码方式实现API设计
-
Java基于Swing实现的打猎射击游戏代码
-
基于Maya API和PySide2的插件开发(用TextBrowser实现文件信息的显示)
-
Java基于余弦方法实现的计算相似度算法示例
-
浅谈Java(SpringBoot)基于zookeeper的分布式锁实现
-
基于node.js 实现百度ai人脸检测功能(api)
-
Java开发之spring security实现基于MongoDB的认证功能
-
Java(基于Struts2) 分页实现代码
-
Java实现基于JDBC操作mysql数据库的方法