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; }