我正在尝试使用Redis作为我正在制作的小型游戏的主要数据库(主要是为了搞乱编程和使用Redis)。
但是我遇到了一个我无法找到答案的场景:
我希望存储人们可以使用的不同地图的名称列表(不是很多)以及他们的ID。注意:我永远不需要从名称中获取ID。
我认为可以做到的两种方式是将信息存储为字符串或哈希值。
即:
1)基于字符串:
2)基于哈希:
我的问题是哪种方式看起来最好。鉴于永远不会有那么多地图,我倾向于单个散列对象。部分原因是这提供了一种很好的方法来返回现有的所有地图。但是基于字符串的查询是否有任何特殊原因会更有用。
希望你能给我一些明确的信息。
谢谢你, Pluckerpluck
答案 0 :(得分:6)
实际上不鼓励使用基于字符串的值,因为它比散列消耗更多的内存。
Redis优化小哈希并以内存有效的方式对其进行编码。这种编码称为zipmap(或redis 2.6中的ziplist)。请参阅http://redis.io/topics/memory-optimization,特别是“尽可能使用哈希”部分。