如何将字节数组存储到StackExchange.Redis?

时间:2018-06-06 08:38:50

标签: redis protobuf-net stackexchange.redis msgpack zeroformatter

我想使用MessagePackZeroFormatterprotobuf-net来序列化/反序列化通用列表,并使用stackexchange.redis客户端将其存储在Redis中。

现在我使用StringSetAsync()方法存储JSON字符串。但我无法找到有关如何在Redis中存储byte[]的任何文档。

1 个答案:

答案 0 :(得分:5)

StackExchange.Redis使用RedisValue来表示存储在Redis中的不同类型的值,因此它提供了隐式转换运算符(对于byte[]等)。请仔细阅读StackExchange.Redis / Basic Usage / Values,如该章的第三句,你可以找到

  

但是,除了文本和二进制内容,...

这基本上意味着您可以使用IDatabase.StringSet()来存储基本值(Redis通常将其视为"字符串"因为还有其他类型,如集合,哈希等) - 是字符串还是字节数组。

        using (var multiplexer = ConnectionMultiplexer.Connect("localhost:6379"))
        {
            byte[] byteArray = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
            var db = multiplexer.GetDatabase();
            db.StringSet("bytearray", byteArray);
        }