17

よく知られている 2 つの C# ドライバーServiceStackStackExchangeを使用して、Redis を評価しようとしています。残念ながら、ServiceStack は無料ではないため使用できません。今、私は StackExchange を試しています。

StackExchange.Redis を使用して POCO を永続化できるかどうかを知っている人はいますか?

4

1 に答える 1

20

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);
    }
}
于 2015-01-09T10:25:19.503 に答える