Ответ 1
StackExchange.Redis может хранить Redis Strings, которые являются бинарными. Это означает, что вы можете легко сериализовать POCO с помощью технологии сериализации по вашему выбору и разместить ее там.
В следующем примере используется .NET BinaryFormatter. Обратите внимание, что вы должны украсить свой класс с помощью SerializableAttribute
, чтобы сделать эту работу.
Пример операции набора:
PocoType somePoco = new PocoType { Id = 1, Name = "YouNameIt" };
string key = "myObject1";
byte[] bytes;
using (var stream = new MemoryStream())
{
new BinaryFormatter().Serialize(stream, somePoco);
bytes = stream.ToArray();
}
db.StringSet(key, bytes);
Пример операции:
string key = "myObject1";
PocoType somePoco = null;
byte[] bytes = (byte[])db.StringGet(key);
if (bytes != null)
{
using (var stream = new MemoryStream(bytes))
{
somePoco = (PocoType) new BinaryFormatter().Deserialize(stream);
}
}