用c#实现redis datatable或dataset数据
1存入redis是通过将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;
}