使用redis.io存储对象

时间:2014-12-09 07:23:30

标签: .net c#-4.0 redis nosql

我正在开发一个Windows服务器应用程序,其主要功能是存储对象数据(可能来自序列化对象或jsons或xmls或二进制文件)并以非常快的方式检索它们。

我读到很多人都在推荐redis.io,而且stackexchange具有必要的绑定这一事实让我想要走这条路。

问题是我不知道如何提出“密钥”值以便将特定数据存储在数据库中。我应该采用散列值作为关键吗?或者是否可以在redis.io中使用自动创建的密钥?

谢谢。

1 个答案:

答案 0 :(得分:2)

是的,Redis可以用于对象缓存,而Stack Exchange's Redis client for C#可以很好地工作。

少数事情:

  • Redis没有关键的自动生成机制
  • 生成自己的id。形成像class-full-name#object_id这样的键,其中生成对象ID。
  • 依赖Object.GetHashCode()
  • 维护&#39; Redis键&#39;之间的关系。对象序列化数据&#39;外部。也就是说,如果您使用的是List<Employee>,请将其更改为Dictionary<String, Employee>(其中key是对象ID)
  • Redis支持词典(称之为哈希&#39;) - 这些词典最适合对象持久性。您可以将对象存储在&#39; hash中,而不是将整个对象序列化并将其存储为单个键。将字段作为类的变量名称,将值作为变量值。如果要获取对象的选定字段,则可以加快检索速度。 (参见:http://redis.io/topics/data-types#hasheshttp://redis.io/commands/#hash