10深センの手紙のRedisを使用するには、ライオン少しスキル

1は、*キーを使用して停止が
わかりました、ではない良い方法おそらく、この記事のコマンドに挑戦し始めたが、それは本当に、おそらく最も重要な点です。
我々はRedisの例統計を懸念している多くの場合、我々はすぐにキー情報が明確に表示されるように、「KEYS *」コマンドを入力します。:すべて公平に、ビューの手続きの点から、私たちは次のような書き込み擬似コードに傾向がある
'*キーのキーのためにある:
doAllTheThingsを()
が、あなたは1300万キーを持っている場合、実行速度が遅くなります。時間計算量はO(N)であり、ここで、nは、このコマンドの複雑さは、データベースのサイズに依存するように、返されるキーの数であるため、KEYSコマンド。この操作が行われた時にそして、あなたは、インスタンス内の任意の他のコマンドを実行することはできません。
代替コマンドとして使用すると、インクリメンタル反復の方法でデータベースをスキャンするために、よりフレンドリーな方法... SCANで実行することを可能にすることで、SCAN見て、。この操作は、カーソルベースのイテレータが完了するまでには、その限り、あなたはフィットを見て、あなたが停止したり、いつでも続けることができます。
2は、犯人のRedisは遅く見つけるために、
Redisのは非常に内部のRedisのインスタンスを知るために、ログを詳細に説明されていないため行っていることは非常に困難です。:幸いRedisのは、以下の統計ツールのようなコマンドを提供してい
127.0.0.1:6379> INFOのcommandstats

Commandstats

cmdstat_get:コール= 78マイクロ秒= 608、usec_per_call = 7.79
cmdstat_setex:コール= 5は、マイクロ秒= 71は、usec_per_call = 14.20である
コール= 2マイクロ秒= 42であり、usec_per_call = 21.00:cmdstat_keys
cmdstat_info:コール= 10マイクロ秒= 1931、usec_per_call = 193.10は、
そのようなミリ秒の数は、それがコマンド(合計時間と順序あたりの平均時間)を実行するのに要する回数として、コマンドを実行するすべてのコマンドを、このツールの統計的なスナップショットを表示することができ
、単にリセットするCONFIG RESETSTATコマンドを実行あなたはブランドの新しい統計情報を取得することができます。
3参照として、Redisの-ベンチマーク結果が、一般化していません

Redisの父サルヴァトーレは言った:「ワイパーが雨の中でフェラーリのミラー効果をきれいに検出するのRedisのようなGET / SETコマンドを実行してテストしました。」人々は私に実行している多くの場合、彼らはなぜ自分のRedis-ベンチマーク調査結果が少ない最適な結果よりも知りたいです。:しかし、私たちのような、考慮に本当の様々な状況を取る必要があり
、クライアントの動作環境があるかもしれない限界?
同じバージョン番号がありますか?
環境を実行しますパフォーマンスとアプリケーションのテスト環境は同じですか?
Redisの-ベンチマークテストの結果は、非正規状態での基準点では実行されませんあなたのRedis-サーバーの保証を提供していますが、本当のようにそれを置くことはありません「ストレステスト」。反応は、アプリケーションのストレステスト動作モードを必要とし、可能な限り必要と同様の環境を作り出します。
4、ハッシュはあなたの最良の選択である
ハッシュにそれを導入するエレガントな方法で。ハッシュはあなたに前例のない経験をもたらすでしょう。:私は次のような多くのそのようなキー構造見た前
FOO:FIRST_NAME
FOO:LAST_NAME
FOO:アドレス
たとえば上記、fooがユーザ名とすることができ、それぞれが別々の鍵です。これは間違いを犯すためのスペース、および不要なキーを向上させます。代わりに、それのハッシュを使用して、あなたはそれだけでも、キーを見つけるために驚かれることでしょう。
127.0.0.1:6379> HSET fooというのFIRST_NAME「ジョー」
(整数)1
127.0.0.1:6379> HSET fooというのLAST_NAME「エンゲル」
(整数)1
127.0.0.1:6379> HSET fooのアドレス「1熱狂的なP1の」
(整数)1
127.0.0.1:6379> HGETALL FOO

  1. "ファーストネーム"
  2. 「ジョー」
  3. "苗字"
  4. 「エンゲル」
  5. "住所"
  6. 「熱狂的なP1の1」
    127.0.0.1:6379> HGET fooというのFIRST_NAME
    「ジョー」
    5は、生存期間のキー値を設定していない
    タイムアウト重要な利点の使用にできるだけ長く、どんな時間。良い例では、このような一時的な認証キーの数などのものを格納することです。
    あなたがキーの権限をルックアップするために行くときとき-のOAuthに、例えば-通常タイムアウトを取得します。同じタイムアウトに設定すると、このようなセットキー、Redisのは自動的にクリアされます!そして、キーを使用することはもはや必要ではすべてのキーをループ*ない、とどのように簡単にそれ?
    6、適切な復旧戦略を選択
    し、我々は回復戦略について話をする必要があり、クリアキー話題について話しましたので、を。Redisのインスタンススペースがいっぱいになると、それはキーの一部を回収しようとします。使用状況に応じて、私は強く揮発性-LRUポリシーを使用することをお勧めします-あなたは、キータイムアウトのために設定されていることを条件とします。
    あなたはキャッシュのものに似た何かを実行している、とキーには、設定されたタイムアウトメカニズムが存在しない場合でも、allkeys-LRU回復メカニズムを使用することを検討してください。ここでの私のアドバイスは、可能なオプションを見ることです。
    7.データが重要な場合は、除き/トライを使用

あなたは、重要なデータは、インスタンスのRedisに置くことができていることを確認する必要がある場合、私は強くtry / exceptブロックを置くことをお勧めします。ほとんどすべてのRedisを使用しているクライアントの「送信と忘れる」戦略は、多くの場合、本当に鍵はRedisのデータベースに置かれているかどうかを検討する必要がありますされています。試し用として/この記事の複雑さに期待してRedisのコマンドについての話に、あなただけの場所に重要なデータがそれを入れていることを保証することができ、そうするために知っておく必要がありますされていません。
8は、インスタンスが不足しない
可能な限りは、分散型のインスタンスのワークロードをマルチのRedisたび、。バージョン3.0.0の当初から、Redisのは、クラスタをサポートします。Redisのクラスタリングを使用すると、キー範囲に基づいて、キー/スレーブモードを含む主要部分を分離することができます。「魔法」の背後にある完全なクラスタはここで見つけることができます。
あなたはチュートリアルを探している場合しかし、その後、しかし、右、その後、場所があります。クラスタを選択することができない場合は、その名前空間を考慮し、あなたの鍵は、複数のインスタンスに分散します。データを割り当てる方法については、redis.ioウェブサイト上でこの素晴らしいコメントがあります。
9、カーネルそれがより良いですか?
もちろん、それは間違っています。Redisのは、シングルスレッドのプロセスで、永続的な意志は2つのだけコアの最大消費しても有効。あなたは、単一のホスト上で複数のインスタンスを実行することを計画していない限り-唯一の希望は、開発およびテスト環境であります!- Redisのインスタンスのない場合は、2つの以上のコアを必要としません。
10は、高可用性
これまでのRedisセンチネルは非常に徹底的なテストに合格した、多くのユーザーは、(ObjectRocket含む)本番環境に適用する必要があります。アプリケーションはRedisのに大きく依存している場合、それはその可用性がドロップされることはありません確実にするためのスキームを考え出す必要があるだろう。

公開された29元の記事 ウォンの賞賛0 ビュー579

おすすめ

転載: blog.csdn.net/drrui520/article/details/105342735