場景:很多時候,我們希望避開資料庫,更多的使用快取來代替直接從資料庫的讀取,以此來提供程式的效能。為此,我們進行了一些比較常見的封裝
例如:什麼配置資訊,常見的活動配置、基礎配置、系統配置、營銷配置等
/// /// 配置相關的快取服務基類
///
///
public abstract class baseconfigcacheservicewhere t : itablebase, new()
}else
return list;
}/// /// 通過資料庫獲取list
///
protected abstract listgetlistfordb();
/// /// 獲取list
///
/// 條件
///
public listgetlist(predicatematch)
return null;
}/// /// 獲取實體
///
/// 條件
public t getmodel(predicatematch)
return default(t);
}/// /// 更新配置
///
public void update()
/// /// 獲取cachekey
///
///
public string getcachekey()
_";}
}
public class coursesconfigcacheservice : baseconfigcacheservice,
new coursesconfigentity
};return list;
}}
呼叫端使用:
//讀取配置資訊
/// /// 記錄相關的快取服務基類
///
///
public abstract class baserecordcacheservicewhere t : itablebase, new()
}else
return list;
}/// /// 通過資料庫獲取list
///
/// id
protected abstract listgetlistfordb(long id);
/// /// 條件獲取列表
///
///
/// 匹配條件
///
public listgetlist(long id, predicatematch)
return null;
}/// /// 獲取實體
///
///
/// 匹配條件
///
public t getmodel(long id, predicatematch)
return default(t);
}/// /// 更新記錄
///
/// 使用者id
public void update(long id)
/// /// 獲取cachekey
///
///
///
public string getcachekey(long id)
_";}
}
public class studentcoursesreocrdcacheservice : baserecordcacheservice,
new studentcoursesreocrdentity,};
return list;
}}
呼叫端**:
//讀取記錄資訊
: 0xwx 資料庫 快取雪崩與快取穿透
首先,我們為什麼要使用redis呢?那麼,如果快取掛了,就意味著我們全部的請求都跑去資料庫了。redis不可能把所有的資料都快取起來 記憶體有限 所有redis需要對資料設定過期時間,並採用惰性刪除 定期刪除兩種策略對過期鍵進行刪除。如果快取資料設定的過期時間是相同的,並且恰好redis將這部分資料...
資料庫游標結合臨時表的使用
一 建立臨時表定義相關的變數 create table temptable 建立臨時表 maintradecode int,subtradecode int,subtradename varchar 50 declare keyword varchar 200 declare searchcount...
資料庫快取
用資料庫 將要儲存的nsarray 或 nsdictionary 物件 轉為nsdata型別。再將nsdata存到資料庫的blob中。若將nsarray直接存到資料庫 那麼資料庫中儲存的是 nsstring型別的資料而不是nsarray物件本身,因此要轉為nsdata型別。方法如下 將oc物件轉為n...