2012-04-11 62 views
3

我正在尝试使用Redis作为我制作的小游戏的主数据库(主要是为了编程和使用Redis)。在Redis中存储小键值列表的最佳方式

但是我碰到,我无法找到答案的情况下传来:

我希望存储不同的地图的名称列表,人们可以在(并不多),连同其ID。注意:我从不需要从名称中获取ID。

两种方式,我相信这是可以做到要么存储信息作为字符串或哈希值。

即:

1)基于字符串:

  • 集地图:0 “主”
  • 集地图:1 “岛”
  • 等(也许一个地图:id来 商店的自动增量值)

2)基于哈希:

  • HSET的地图 “0”, “主”
  • HSET的地图 “1”, “岛”

我的问题是哪种方式似乎是最好的。鉴于我将永远不会有那么多的地图倾向于单个散列对象。部分原因是因为这提供了一个很好的方法来返回现有的所有地图。但是,有没有什么特别的原因,基于字符串的查询会更有用。

希望你能给我一些明确的信息。

谢谢 Pluckerpluck基于

回答

6

的字符串值实际上是气馁,因为它消耗比散列更多的内存。

Redis优化小散列并以高效的内存方式对它们进行编码。这种编码称为zipmap(或redis 2.6中的ziplist)。请参阅http://redis.io/topics/memory-optimization,特别是“尽可能使用散列”一节。

+1

这是非常清晰和简洁。谢谢回答。 – Pluckerpluck 2012-04-11 15:48:09

相关问题