350 万のレコード (読み取り専用) が実際に MySQL DB に格納されており、パフォーマンス上の理由から Redis に引き出したいと考えています。実際、私はこのようなものを Redis に保存することができました:
1 {"type":"Country","slug":"albania","name_fr":"Albanie","name_en":"Albania"}
2 {"type":"Country","slug":"armenia","name_fr":"Arménie","name_en":"Armenia"}
...
ここで使用するキーは従来の MySQL ID です。そのため、Ruby の接着剤を使用して、この既存のアプリで壊れるものをできるだけ少なくすることができます (これは深刻な問題です)。
問題は、値の部分で「アルメニア」というキーワードで検索を実行する必要がある場合です。2つの方法しかないようです:
Redis インデックスを乗算するか:
- id => JSON 値 (上記参照)
- slug => id (基本的な検索トリックを実行できる、スラッグに基づく逆インデックス)
- 最後に、この投稿に示すように、オートコンプリート専用の別の巨大なインデックス: http://oldblog.antirez.com/post/autocomplete-with-redis.html
私はsunspotか全文検索エンジンのどちらかを使っています(残念ながら、実際にはMySQLと結びつきが強すぎるThinkingSphinxを使っています:-(
それで、あなたは何をしますか?単一のテーブルを MySQL から Redis に移行することは良い考えだと思いますか? これらの巨大な Redis キー/値が 16GB RAM サーバーで使用できるメモリ フットプリントが心配です。
同様の Redis の使用法に関するフィードバックはありますか?