【问题标题】:Saving a collection of objects with BookSleeve使用 BookSleeve 保存对象集合
【发布时间】:2013-01-27 18:00:42
【问题描述】:

我是 Redis 和 BookSleeve 的新手。我正在评估是否应该使用 BookSleeve 或 ServiceStack.Redis。

ServiceStack 看起来更直接,但我喜欢 BookSleeve 提供的流水线的想法。

我有 Redis 和 BookSleeve 正在运行,获取和设置字符串很容易,但我很难找到设置和获取对象集合的示例,例如我的 pocos。

public class MyType
{
....
}

IEnumerable<MyType> types = ....

如何使用 BookSleeve 获取和设置这些?

谢谢。

【问题讨论】:

  • +1,因为您设法从这两个产品的创建者那里得到了两个答案。

标签: booksleeve


【解决方案1】:

BookSleeve 公开 API 以读取/写入字符串和 blob (byte[]),但它不会强制您关闭任何特定的序列化路线,或规定是否应将集合存储为单个值,而不是列表等。

基本上,使用 BookSleeve,您可以通过任何您喜欢的序列化程序(XML、json、protobuf 等)单独序列化,然后发送 那个。这通常只有大约 2 或 3 行代码(通常涉及 MemoryStream)。

【讨论】:

  • 我明白了...我希望它能提供比这更精致的东西。
  • @Refinement 就像说咖啡机不精炼,因为它不能让你的生菜保持低温 :) 它不是序列化库...
【解决方案2】:

使用 ServiceStack.Redis 时,只需:

var redisClient = new RedisClient();
redisClient.StoreAll(myTypes);

不确定您在寻找什么 流水线 功能,但您可以使用 ServiceStack.Redis's transactions API(始终流水线)创建自定义流水线操作,或者如果您不希望操作在您可以使用Redis.CreatePipeline() 的交易 - 请参阅这些tests for some examples

【讨论】:

  • 谢谢。现在我知道为什么有更多的 ServiceStack.Redis 示例以及为什么它似乎被更广泛地采用了。我认为它更适合我想做的事情。
猜你喜欢
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2014-05-09
  • 2019-10-09
相关资源
最近更新 更多