StackExchange RedisValue ToByteArray 不可序列化

StackExchange RedisValue ToByteArray not Serializable

我是 StackExchange.Redis 的新手,但我被分配了一项任务,将我们的 Redis 缓存转换为 StackExchange.Redis。也就是说,在我们的一种方法中 return 数据库值为 byte[].

当我尝试时:var redisData = database.StringGet(key).ToByteArray();

我收到这个错误:

Type 'StackExchange.Redis.RedisValue' in Assembly 'StackExchange.Redis, Version=1.1.608.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable

但是当我这样做时:var redisData = database.StringGet(key); 我得到一个值。

所以我的问题是:如何将 redisData 转换为 byte[]

如果您看一下 StringGet(), which is RedisValue, you will see, that is it implicitly convertible to string and byte[] 返回的类型。转换它所需要做的就是简单地将它用作 byte[] 类型的变量(让隐式运算符完成工作)或显式转换它。

var redisData = (byte[])database.StringGet(key);

我假设,您存储的数据是一个正确的 byte[] 数组。否则,如果您存储了 string,例如。序列化对象,你将得到 string.

的字节表示