redis获取byte数组_ServiceStack.Redis 如何保存与读取二维数组
时间: 2024-03-01 15:54:07 浏览: 149
在 ServiceStack.Redis 中,可以使用 Redis 的 String 类型来保存和读取 byte 数组。对于二维数组,可以将其转换为一维数组,然后再保存。
以下是保存和读取二维数组的示例代码:
```csharp
// 假设要保存的二维数组为 arr
byte[][] arrBytes = arr.Select(a => a.Select(b => (byte)b).ToArray()).ToArray(); // 转换为 byte[][]
byte[] arrBytes1D = arrBytes.SelectMany(a => a).ToArray(); // 转换为一维数组
// 将一维数组保存到 Redis 中
redisClient.Set("mykey", arrBytes1D);
// 从 Redis 中读取一维数组
byte[] arrBytes1DFromRedis = redisClient.Get<byte[]>("mykey");
// 将一维数组转换为二维数组
byte[][] arrBytesFromRedis = new byte[arr.Length][];
for (int i = 0, index = 0; i < arr.Length; i++)
{
arrBytesFromRedis[i] = new byte[arr[i].Length];
for (int j = 0; j < arr[i].Length; j++, index++)
{
arrBytesFromRedis[i][j] = arrBytes1DFromRedis[index];
}
}
// 将二维数组转换为原始类型
int[][] arrFromRedis = arrBytesFromRedis.Select(a => a.Select(b => (int)b).ToArray()).ToArray();
```
这里需要注意的是,由于 Redis 中只能保存 byte 数组,因此需要将原始二维数组转换为 byte[][] 数组,然后再将其转换为一维数组保存到 Redis 中。读取时需要将一维数组再转换为 byte[][] 数组,最后再将其转换为原始类型的数组。
阅读全文