用SpringAOP結合MemCached做緩存的設想
1, 給DAO的方法上加SpringAOP的Around通知,決定數據從數據庫獲得還是從緩存獲得。2,自定義兩個Annotation,@Cache和@Flush,分別加在DAO的查詢和修改的方法上。
3,Around通知函數內用反射獲取上述的@cache和@Flush,代表是記錄緩存,還是刪除緩存。
4,記錄緩存時用“類名+方法名+參數的hashcode”作為Key,刪除緩存時,刪除所有的同類名開頭的key對應的緩存。
5,Memcached不支持遍歷key,所以采用數據庫表記錄key,假設:tbl_memcached(key,exp_date)。
6,定義一個時鐘,定期刪除tbl_memcached的過期記錄(刪除數據庫記錄前,刪除緩存)。
7,記錄緩存時,同時存入一條記錄到tbl_memcached表。
8,刪除緩存是依據tbl_memcache表的key來進行,并且要刪除tbl_memcached表的相關記錄。
posted on 2009-08-24 18:24 MingIsMe 閱讀(455) 評論(0) 編輯 收藏 所屬分類: 06 J2EE