StackExchange.Redis可以用来存储POCO吗?
Can StackExchange.Redis be used to store POCO?
我正在尝试使用两个众所周知的 C# 驱动程序来评估 Redis ServiceStack and StackExchange。不幸的是,我不能使用 ServiceStack,因为它不是免费的。现在我正在尝试 StackExchange。
有谁知道 StackExchange.Redis 我是否可以坚持 POCO?
StackExchange.Redis可以存储Redis Strings,是二进制安全的。这意味着,您可以使用您选择的序列化技术轻松地序列化 POCO 并将其放入其中。
以下示例使用.NET BinaryFormatter。请注意,您必须用 SerializableAttribute
修饰 class 才能使它生效。
示例集合操作:
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);
}
}
我正在尝试使用两个众所周知的 C# 驱动程序来评估 Redis ServiceStack and StackExchange。不幸的是,我不能使用 ServiceStack,因为它不是免费的。现在我正在尝试 StackExchange。
有谁知道 StackExchange.Redis 我是否可以坚持 POCO?
StackExchange.Redis可以存储Redis Strings,是二进制安全的。这意味着,您可以使用您选择的序列化技术轻松地序列化 POCO 并将其放入其中。
以下示例使用.NET BinaryFormatter。请注意,您必须用 SerializableAttribute
修饰 class 才能使它生效。
示例集合操作:
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);
}
}