2012-04-11 7 views
3

私は小さなゲームのためのプライマリデータベースとしてRedisを使用しようとしています。小さなキー値リストをRedisに保存する最も良い方法

私は答えを見つけることができませんでしたシナリオに出くわししかし:彼らと一緒に、私は人々が(それらの多くではない)にすることができ異なるマップの名前のリストを保存したい

をid。注:名前からIDを取得する必要はありません。

私はこれができると信じている2つの方法は、情報を文字列またはハッシュとして格納することです。

すなわち:

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