Redisのメモリ操作

この記事では、基本的には、Redisの公式サイトのテキスト翻訳メモリの最適化、あるメモリの最適化

特別なコーディング作業セットの種類

Redisの2.2は、リスト、ハッシュなどのより少ないスペースを取るために最適化された小さなデータセットを開始するときに、要素が整数に設定され、要素の最大数と要素のサイズは、値の順序集合所与未満で、あろう符号化するための非常に効率的な方法は、メモリによって占有されている10倍(5回の平均値)によって低減することができます。

ユーザおよびAPIのために、これらの動作は、次の要素の最大数と最大の要素のサイズを調整するための特定の符号化タイプredis.conf命令であり、CPU /メモリのトレードオフにより、完全に透明です。詳細はredis.confプロファイルに説明することができます。

ハッシュ-MAX-zipmap-エントリ512 #hash(Redisの> = 2.6のハッシュ-MAX-ziplist-エントリ) 要素のタイプの最大数
ハッシュ-MAX-zipmap値64 (のRedisのハッシュ-MAX-ziplist値> = 2.6)#hash型の最大要素サイズ
リスト-MAX-ziplist-エントリ512 #list タイプの要素の最大数
リスト-MAX-ziplist値64 #リストの最大要素サイズタイプ ZSET-MAX-ziplist-エントリ128 #を有しています順序集合の要素の最大数 最大要素サイズZSET-MAX-ziplist値64位順序集合 セットMAX-INTSET・エントリ512内の要素の最大数の#setのセット

  その構成の変更は、一般的に次のベンチマークのために推奨された場合にどのように要素の数や大きさは、自動的にエンコーディングを変換するには、コンフィギュレーションを超えています。

32ビットシステム

ビットとバイト操作を使用

  Redisのバージョン2.2は、バイトを紹介し、ビットGetRangesetRangeGETBITSetBitをこれらのコマンドは、バイト列型の配列として見ることができます。より多くのメモリ使用量を節約するためにそれらを使用してください。女性のための男性のための0と1:このようなユーザーの性別を救うために1ビットを使用するなど。

可能な限りハッシュタイプを使用します

  前述したように、ハッシュタイプの小さなセットは、特別なコードの下で、あなたはメモリ効率を高めることができるだろう。したがって、ハッシュは、データを表すために使用されるべきです。たとえば、Webアプリケーションでは、あなたの代わりに、キーのユーザの数、ユーザ属性に代わって表現するために属性を使用するのでは、オブジェクトの保存ハッシュを使用する必要があります。ユーザ-100001 {年齢:19、性別:1、住所:杭州}代わりuser.age-100001:19をこのキーと値のペアストアユーザ情報。

メモリキーと値のストア保存ハッシュ抽象を使用します

  我々だけでなく、通常のメモリキーと値のストアよりも効率的、かつmemcachedのより効率的である文字列であってもよく、モデリングのためのキーと値のストアに普通のRedisを使用することができます。

  のは、少量のデータでは、事実から始めましょう、キーと値の比の使用は、より多くのメモリを占有表現するためにハッシュを使用して表現しました。

  多くの場合、ハッシュテーブルは、一部のフィールドだけを含む、比較的小さいです。ハッシュが小さい場合、そのような長さプレフィックスキー配列を有するものとしてO(N)のデータ構造として符号化することができます。Nが小さい場合、我々は唯一そうので、平均時間Hget及びHSETまたはO(1)。

  時間のみの複雑さから、この説明は十分ではありませんが、定数が真である時間的に、配列のCPUキャッシュを構築することができると非常によく一緒に遊ぶべきです(ローカルキャッシュパフォーマンスハッシュの配列構造よりも良いです) 。

  ただし、キーの機能をハッシュによる完全なRedisのは、有効期限を持っている、とだけ文字列ことができないではありません。

 

おすすめ

転載: www.cnblogs.com/hhan/p/10950918.html