国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

緩存碎語二

2019-11-17 02:32:07
字體:
來源:轉載
供稿:網友

緩存碎語二

緩存很多條數據,但只讀取其中的一部分數據,如何處理?

比如在緩存中保存了100條數據,但讀取分頁數據,比如每次分頁只讀取10條數據。這種情況下,可以把這100條數據拆分成10次分別保存起來。每一個緩存項的key需要特別的設計,比如:01-10-PRoducts, 02-10-products......

如何避免緩存一些不需要的數據?

比如:

public class Teacher
{
    public int Id{get;set;}
    public string Name{get;set;}
    public Department Department{get;set;}
}
public class Department
{
    public int Id{get;set;}
    public string Name{get;set;}
}

這里只想把Teacher緩存起來,但是,如果采用.NET默認的序列化機制,即在Teacher這個類上打上Serializable特性,序列化Teacher的時候,也會把引用屬性Department對應的類Department一同序列化。

解決這個問題的方法是:在不需要被序列化的類上打上[NonSerialized]特性,或者實現ISerializable接口,自定義序列化的邏輯。

如何實現通過不同的key讀取相同的緩存項?

比如緩存產品,有時候把產品名作為key保存起來,有時候通過集合索引來從緩存中獲取產品,這時候我們可以把不同形式的key連接成字符串作為key。

var product = GetProduct();
cache["prod_1"] = product;
......
var cacheProduct = cache["prod_1"];

參考資料:汪洋的"DotNet"公眾號。


上一篇:DataUml Design 介紹11

下一篇:C# to Maxscript

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌鲁木齐县| 黄平县| 南康市| 福清市| 海原县| 泊头市| 贺兰县| 怀仁县| 象山县| 衢州市| 霍林郭勒市| 平乐县| 高清| 香格里拉县| 铜山县| 绥江县| 鄂尔多斯市| 辽中县| 泸水县| 潮州市| 慈利县| 大丰市| 嘉荫县| 晋中市| 开阳县| 广德县| 垣曲县| 汤阴县| 溧阳市| 莱州市| 昭苏县| 涿州市| 崇义县| 东山县| 灵山县| 扬州市| 鄂州市| 巴林右旗| 盖州市| 古田县| 鸡泽县|