首页 > 解决方案 > 如何将字节数组存储到 StackExchange.Redis?

问题描述

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

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

标签: redisprotobuf-netstackexchange.redismsgpackzeroformatter

解决方案


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);
        }

推荐阅读