-
الحزمة lhm.hcy.guge.frameset.cache;
import java.util.*;
/**
* <p>العنوان: </p>
*
* <p>الوصف: إدارة ذاكرة التخزين المؤقت</p>
* ديب بلو 2008-11-28 فكر
* وظيفة قابلة للتوسيع: عندما يصل chche إلى تجاوز سعة الذاكرة، يجب مسح بعض كائنات ذاكرة التخزين المؤقت الأقدم، الأمر الذي يتطلب توفير وقت إنشاء كل كائن ذاكرة تخزين مؤقت.
* <p>حقوق الطبع والنشر: حقوق الطبع والنشر (ج) 2008</p>
*
* <p>الشركة: </p>
*
* @ المؤلف ديب بلو 2008-11-11
* @الإصدار 1.0
*/
مدير ذاكرة التخزين المؤقت للفئة العامة {
خاص ثابت HashMap CacheMap = new HashMap();
// طريقة بناء مثيل واحد
مدير ذاكرة التخزين المؤقت الخاص () {
ممتاز()؛
}
// احصل على ذاكرة التخزين المؤقت للقيم المنطقية
getSimpleFlag المنطقية العامة الثابتة (مفتاح السلسلة) {
يحاول{
إرجاع (منطقي) ذاكرة التخزين المؤقت.get(key);
}قبض على(NullPointerException ه){
عودة كاذبة.
}
}
getServerStartdt العام الثابت الطويل (مفتاح السلسلة) {
يحاول {
return (Long)cacheMap.get(key);
} قبض (استثناء على سبيل المثال) {
العودة 0؛
}
}
// قم بتعيين ذاكرة التخزين المؤقت للقيم المنطقية
مجموعة منطقية ثابتة عامة متزامنةSimpleFlag(String key,boolean flag){
if (flag && getSimpleFlag(key)) {// إذا كان صحيحًا، فلا يُسمح بالكتابة فوقه
عودة كاذبة.
}آخر{
CacheMap.put(key, flag);
عودة صحيحة؛
}
}
مجموعة منطقية ثابتة عامة متزامنةSimpleFlag(String key,long serverbegrundt){
إذا (cacheMap.get(key) == null) {
CacheMap.put(key,serverbegrundt);
عودة صحيحة؛
}آخر{
عودة كاذبة.
}
}
// احصل على ذاكرة التخزين المؤقت. الأساليب الثابتة المتزامنة
ذاكرة التخزين المؤقت الثابتة الخاصة المتزامنة getCache(String key) {
إرجاع (ذاكرة التخزين المؤقت) CacheMap.get(key);
}
// تحديد ما إذا كانت هناك ذاكرة تخزين مؤقت
hasCache منطقية ثابتة متزامنة خاصة (مفتاح سلسلة) {
إرجاع ذاكرة التخزين المؤقت Map.containsKey(key);
}
// مسح كافة ذاكرات التخزين المؤقت
الفراغ الثابت المتزامن العام ClearAll () {
CacheMap.clear();
}
// امسح نوعًا معينًا من ذاكرة التخزين المؤقت وحدد ما إذا كان مفتاحه يطابق النوع الوارد عن طريق اجتياز جميع الكائنات الموجودة ضمن HASHMAP
الفراغ الثابت المتزامن العام ClearAll (نوع السلسلة) {
Iterator i = CacheMap.entrySet().iterator();
مفتاح السلسلة؛
ArrayList<String> arr = new ArrayList<String>();
يحاول {
بينما (i.hasNext()) {
java.util.Map.Entry الإدخال = (java.util.Map.Entry) i.next();
مفتاح = (سلسلة) دخول.getKey();
if (key.startsWith(type)) {// إذا كان مطابقًا، فاحذف
arr.add(key);
}
}
for (int k = 0; k < arr.size(); k++) {
ClearOnly(arr.get(k));
}
} قبض (استثناء على سبيل المثال) {
ex.printStackTrace();
}
}
// امسح ذاكرة التخزين المؤقت المحددة
الفراغ الثابت المتزامن العام ClearOnly(String key) {
CacheMap.remove(key);
}
// تحميل ذاكرة التخزين المؤقت
putCache باطلة ثابتة متزامنة عامة (String key, Cache obj) {
CacheMap.put(key, obj);
}
// احصل على معلومات ذاكرة التخزين المؤقت
ذاكرة التخزين المؤقت العامة الثابتة getCacheInfo(String key) {
إذا (hasCache(مفتاح)) {
ذاكرة التخزين المؤقت = getCache(key);
if (cacheExpired(cache)) { // اتصل بالطريقة لتحديد ما إذا كان سيتم الإنهاء أم لا
Cache.setExpired(true);
}
إرجاع ذاكرة التخزين المؤقت؛
}آخر
عودة فارغة؛
}
// تحميل معلومات ذاكرة التخزين المؤقت
public static void putCacheInfo(String key, Cache obj, long dt,boolean منتهية الصلاحية) {
ذاكرة التخزين المؤقت = ذاكرة التخزين المؤقت الجديدة () ؛
Cache.setKey(key);
Cache.setTimeOut(dt + System.currentTimeMillis()); // حدد المدة التي يستغرقها تحديث ذاكرة التخزين المؤقت
Cache.setValue(obj);
Cache.setExpired(expired); // عندما يتم تحميل ذاكرة التخزين المؤقت بشكل افتراضي، تكون حالة الإنهاء خاطئة
CacheMap.put(مفتاح, ذاكرة التخزين المؤقت);
}
// أعد كتابة طريقة تحميل معلومات ذاكرة التخزين المؤقت
public static void putCacheInfo(String key,Cache obj,long dt){
ذاكرة التخزين المؤقت = ذاكرة التخزين المؤقت الجديدة () ؛
Cache.setKey(key);
Cache.setTimeOut(dt+System.currentTimeMillis());
Cache.setValue(obj);
Cache.setExpired(false);
CacheMap.put(key,cache);
}
// تحديد ما إذا كان قد تم إنهاء ذاكرة التخزين المؤقت
ذاكرة التخزين المؤقت المنطقية العامة منتهية الصلاحية (ذاكرة التخزين المؤقت) {
if (null == Cache) { // ذاكرة التخزين المؤقت الواردة غير موجودة
عودة كاذبة.
}
long nowDt = System.currentTimeMillis(); // العدد الحالي للميلي ثانية في النظام
long CacheDt = Cache.getTimeOut(); // انتهاء الصلاحية بالمللي ثانية في ذاكرة التخزين المؤقت
if (cacheDt <= 0||cacheDt>nowDt) { // عندما يكون وقت انتهاء الصلاحية أقل من أو يساوي الصفر، أو عندما يكون وقت انتهاء الصلاحية أكبر من الوقت الحالي، فهذا خطأ
عودة كاذبة.
} else { // تنتهي صلاحيته إذا كان أكبر من وقت انتهاء الصلاحية
عودة صحيحة؛
}
}
// احصل على الحجم في ذاكرة التخزين المؤقت
public static int getCacheSize() {
إرجاع ذاكرة التخزين المؤقتMap.size();
}
// احصل على حجم النوع المحدد
public static int getCacheSize(String type) {
كثافة العمليات ك = 0؛
Iterator i = CacheMap.entrySet().iterator();
مفتاح السلسلة؛
يحاول {
بينما (i.hasNext()) {
java.util.Map.Entry الإدخال = (java.util.Map.Entry) i.next();
مفتاح = (سلسلة) دخول.getKey();
if (key.indexOf(type) != -1) { // إذا كانت متطابقة، فاحذفها
ك++;
}
}
} قبض (استثناء على سبيل المثال) {
ex.printStackTrace();
}
العودة ك؛
}
// احصل على جميع أسماء القيم الأساسية في كائن ذاكرة التخزين المؤقت
ArrayList العام الثابت<String> getCacheAllkey() {
ArrayList a = new ArrayList();
يحاول {
Iterator i = CacheMap.entrySet().iterator();
بينما (i.hasNext()) {
java.util.Map.Entry الإدخال = (java.util.Map.Entry) i.next();
a.add((String)entry.getKey());
}
} قبض (استثناء على سبيل المثال) {} أخيرا {
العودة أ؛
}
}
// احصل على اسم قيمة المفتاح للنوع المحدد في كائن ذاكرة التخزين المؤقت
ArrayList العام الثابت<String> getCacheListkey(String type) {
ArrayList a = new ArrayList();
مفتاح السلسلة؛
يحاول {
Iterator i = CacheMap.entrySet().iterator();
بينما (i.hasNext()) {
java.util.Map.Entry الإدخال = (java.util.Map.Entry) i.next();
مفتاح = (سلسلة) دخول.getKey();
إذا (key.indexOf(type) != -1) {
a.add(key);
}
}
} قبض (استثناء على سبيل المثال) {} أخيرا {
العودة أ؛
}
}
}
الحزمة lhm.hcy.guge.frameset.cache;
/**
* <p>العنوان: </p>
*
* <p>الوصف: ذاكرة التخزين المؤقت DTO</p>
*
* <p>حقوق الطبع والنشر: حقوق الطبع والنشر (ج) 2008</p>
*
* <p>الشركة: </p>
*
* @ المؤلف ديب بلو 2008-11-11
* @الإصدار 1.0
*/
ذاكرة التخزين المؤقت للفئة العامة {
مفتاح سلسلة خاص؛ // معرف ذاكرة التخزين المؤقت
قيمة الكائن الخاصة؛ // بيانات ذاكرة التخزين المؤقت
مهلة طويلة خاصة ؛ // وقت التحديث
انتهت صلاحية منطقية خاصة؛ // ما إذا كان سيتم الإنهاء
ذاكرة التخزين المؤقت العامة () {
ممتاز()؛
}
ذاكرة التخزين المؤقت العامة (مفتاح السلسلة، قيمة الكائن، مهلة طويلة، انتهت صلاحية منطقية) {
this.key = key;
this.value = value;
this.timeOut = timeOut;
this.expired = انتهت صلاحيته؛
}
سلسلة عامة getKey() {
مفتاح العودة؛
}
getTimeOut العامة الطويلة () {
مهلة العودة؛
}
الكائن العام getValue () {
قيمة الإرجاع؛
}
مجموعة الفراغ العام (سلسلة سلسلة) {
مفتاح = سلسلة؛
}
مجموعة الفراغ العام (طويل ل) {
timeOut = l;
}
مجموعة الفراغ العام (كائن كائن) {
القيمة = الكائن؛
}
انتهت صلاحية المنطقية العامة () {
انتهت صلاحية الإرجاع؛
}
مجموعة الفراغ العامة منتهية الصلاحية (منطقية ب) {
انتهت صلاحيتها = ب؛
}
}
// فئة الاختبار،
اختبار الصف {
public static void main(String[] args) {
System.out.println(CacheManager.getSimpleFlag("alksd"));
// CacheManager.putCache("abc"، new Cache());
// CacheManager.putCache("def"، new Cache());
// CacheManager.putCache("ccc"، new Cache());
// CacheManager.clearOnly("");
// ذاكرة التخزين المؤقت ج = ذاكرة التخزين المؤقت الجديدة ()؛
// لـ (int i = 0; i < 10; i++) {
// CacheManager.putCache("" + i, c);
// }
// CacheManager.putCache("aaaaaaaa", c);
// CacheManager.putCache("abchcy;alskd"، c);
// CacheManager.putCache("cccccccc", c);
// CacheManager.putCache("abcoqiwhcy", c);
// System.out.println("الحجم قبل الحذف: "+CacheManager.getCacheSize());
// CacheManager.getCacheAllkey();
// CacheManager.clearAll("aaaa");
// System.out.println("الحجم بعد الحذف: "+CacheManager.getCacheSize());
// CacheManager.getCacheAllkey();
}
}
هذه المقالة مأخوذة من مدونة CSDN، يرجى الإشارة إلى المصدر عند إعادة الطباعة: http://blog.csdn.net/hello_zhenyu/archive/2009/12/18/5030366.aspx.