国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉祥县| 安泽县| 温州市| 锦州市| 象山县| 辽阳市| 海丰县| 老河口市| 阳泉市| 阿城市| 永康市| 五华县| 普兰店市| 盐津县| 定日县| 双桥区| 东乡县| 晋中市| 宁乡县| 克山县| 临漳县| 龙游县| 保康县| 崇仁县| 玉山县| 浦江县| 莲花县| 札达县| 德昌县| 南投县| 柘城县| 神池县| 昌乐县| 名山县| 罗田县| 策勒县| 池州市| 祁东县| 江津市| 祁东县| 龙游县|