sql >> データベース >  >> NoSQL >> Redis

Redis —大きな地図を保存するための最良の方法(辞書)

    はい、Itamar Haberが言うように、このRedisメモリ最適化ガイドを参照する必要があります。ただし、さらにいくつかの点に注意する必要があります。

    1. KEYSよりHSETを優先します。 Redisは、キースペース管理だけで大量のメモリを消費します。簡単に言えば、1,000,000個のキーを持つ1つのHSETは、それぞれ1つの値を持つ1,000,000個のキーよりも最大10分の1のメモリを消費します。
    2. HSETサイズをhash-max-zipmap-entries未満に保ちます 有効なhash-max-zipmap-value メモリが主なターゲットである場合。 hash-max-zipmap-entriesが何であるかを必ず理解してください およびhash-max-zipmap-value 平均。また、ziplistについて読むのに少し時間がかかります。
    3. 実際には、hash-max-zipmap-entriesを処理する必要はありません。 10M以上のキーを使用。代わりに、1つのHSETを複数のスロットに分割する必要があります。たとえば、hash-max-zipmap-entriesを設定します 10,000として。したがって、1,000万以上のキーを保存するには、それぞれ10,000以上の1000以上のHSETキーが必要です。大まかな目安として、crc32(key)%maxHsets。
    4. redisの文字列について読み、この構造の実際のメモリ管理に基づいたKEY名(HSET)の長さを使用します。簡単に言うと、キーの長さを7バイト未満に保つと、キーごとに16バイトが消費されますが、8バイトのキーはそれぞれ48バイトを消費します。なんで?単純な動的文字列について読んでください。

    以下について読むと役立つ場合があります:

    • Redisメモリの最適化(sripathikrishnanから)
    • 内部ziplist構造に関するコメント。
    • 数億の単純なキーと値のペアをRedis(Instagram)に保存する



    1. MongoDBのパフォーマンスを監視するための6つの便利なツール

    2. MongoDBでコレクションをCSVにエクスポートするにはどうすればよいですか?

    3. MongoDB $ hour

    4. リストの長さをredisで制限する