Redis Booksleeve,HGETALL并将字节数组转换为long

时间:2013-11-27 10:55:01

标签: c# redis booksleeve

我正在使用Booksleeve从C#代码与Redis进行通信。代码首先从散列中检索所有字段和值:

var vals = await Redis.Hashes.GetAll(0, redisKey);

哈希包含值为long的字段。

对Hashes.GetAll的调用将字段值作为字节数组返回。问题是,如何将此字节数组转换为C#long

例如,如果我使用Hashes.GetInt64来检索值,我会回到9684,这是正确的。但是我无法将检索到的字节数组转换为long,以便它匹配此值:

BitConverter.ToInt64(redisHashValue, 0) throws ArgumentException

BitConverter.ToInt32(redisHashValue, 0) returns 876099129

BitConverter.ToInt16(redisHashValue, 0) returns 13881

1 个答案:

答案 0 :(得分:1)

好吧,首先将字节数组转换为字符串似乎可以解决问题:

long.Parse(Encoding.UTF8.GetString(redisHashValue));

但是有更好的解决方案吗?