1.存儲
通過將DataTable或者DataSet數據進行序列化轉換成內存流,將流化的對象放入字節數組,然后存到字節數組中
/// <summary> /// 插入DataTable緩存 /// </summary> /// <param name="key">緩存鍵</param> /// <param name="item">緩存對象</param> /// <param name="minute">過期時間(分鍾)</param> public static void SetMemByDataTable(string key, DataTable dt, int minute) { DateTime expiryTime = DateTime.Now.AddMinutes(minute); System.Runtime.Serialization.IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();//定義BinaryFormatter以序列化DataSet對象 System.IO.MemoryStream ms = new System.IO.MemoryStream();//創建內存流對象 formatter.Serialize(ms, dt);//把DataSet對象序列化到內存流 byte[] buffer = ms.ToArray();//把內存流對象寫入字節數組 ms.Close();//關閉內存流對象 ms.Dispose();//釋放資源 Redis.Set(key, buffer, expiryTime); }
2.讀取
將數據從Redis中讀取出來,通過二進制讀取出來的是一個object對象,然后將該對象強制轉換為對應的數據類型
public static DataTable GetMemByDataTable(string key) { var item = Get(key); return (DataTable)item; }