How to store a byte array to StackExchange.Redis?
Asked Answered
T

1

16

I want to use the MessagePack, ZeroFormatter or protobuf-net to serialize/deserialize a generic list and store it in Redis using the stackexchange.redis client.

Now I'm storing a JSON string with the StringSetAsync() method. But I can't find any documentation on how to store a byte[] in Redis.

Taliataliaferro answered 6/6, 2018 at 8:38 Comment(0)
N
28

StackExchange.Redis uses RedisValue to represent different types of values stored in Redis and so it provides implicit conversion operators (for byte[] among others). Please read StackExchange.Redis / Basic Usage / Values carefully as in the third sentence of that chapter you can find

However, in addition to text and binary contents, ...

which basically means that you can use IDatabase.StringSet() to store a basic value (which Redis generally thinks of as a "string" as there are other types like sets, hashes, and so on) - be it string or an array of bytes.

        using (var multiplexer = ConnectionMultiplexer.Connect("localhost:6379"))
        {
            byte[] byteArray = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 };
            var db = multiplexer.GetDatabase();
            db.StringSet("bytearray", byteArray);
        }
Neri answered 6/6, 2018 at 9:17 Comment(1)
(nods in appreciation)Handbreadth

© 2022 - 2024 — McMap. All rights reserved.