在Redis中存储小键值列表的最佳方法

Plu*_*uck 3 redis

我正在尝试使用Redis作为我正在制作的小型游戏的主要数据库(主要用于编程和使用Redis).

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

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

我认为可以做到的两种方式是将信息存储为字符串或哈希.

即:

1)基于字符串:

  • 设置地图:0"主要"
  • 设置地图:1"岛屿"
  • etc(也许是map:id来存储自动增量值)

2)基于哈希:

  • hset maps"0""Main"
  • hset maps"1""Island"
  • 等等

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

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

谢谢Pluckerpluck

Sri*_*nan 6

实际上不鼓励基于String的值,因为它比散列消耗更多的内存.

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