よく知られている 2 つの C# ドライバーServiceStackとStackExchangeを使用して、Redis を評価しようとしています。残念ながら、ServiceStack は無料ではないため使用できません。今、私は StackExchange を試しています。
StackExchange.Redis を使用して POCO を永続化できるかどうかを知っている人はいますか?
よく知られている 2 つの C# ドライバーServiceStackとStackExchangeを使用して、Redis を評価しようとしています。残念ながら、ServiceStack は無料ではないため使用できません。今、私は StackExchange を試しています。
StackExchange.Redis を使用して POCO を永続化できるかどうかを知っている人はいますか?
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);
}
}