3

我正在尝试将 Redis 用作我正在制作的小游戏的主数据库(主要是为了搞乱编程和使用 Redis)。

但是,我遇到了一个无法找到答案的场景:

我希望存储人们可以使用的不同地图的名称列表(不是很多)以及他们的 ID。注意:我永远不需要从名称中获取 ID。

我认为可以做到这一点的两种方法是将信息存储为字符串或哈希。

IE:

1)基于字符串:

  • 设置地图:0“主要”
  • 设置地图:1“岛”
  • 等(也许还有一个 maps:id 来存储一个自动增量值)

2)基于哈希:

  • hset 映射“0”“主要”
  • hset 映射“1”“岛”
  • ETC

我的问题是哪种方式看起来最好。鉴于永远不会有那么多地图,我倾向于使用单个散列对象。部分是因为这提供了一个很好的方法来返回所有存在的地图。但是是否有任何特殊原因表明基于字符串的查询会更有用。

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

谢谢你,Pluckerpluck

4

1 回答 1

7

实际上不鼓励使用基于字符串的值,因为它比散列消耗更多的内存。

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

于 2012-04-11T13:53:20.467 回答