Redisの顔の質問には、設定します

オリジナルリンク: https://my.oschina.net/u/1186503/blog/1632949

Redisの1利点は何ですか?

(1)HashMapのと同様に、メモリに格納されたデータが、HashMapの利点は、操作の時間と複雑さを見出すことである速いので、O(1)であり、 
リッチデータ型のサポート列、リスト(2)サポート、設定、ソートセット、ハッシュ 
(3)サポートサービスを、操作は、すべての実行またはすべて実行されないいずれかのデータに、いわゆるアトミック変更原子である 
(4)豊富な機能セットを:キャッシング、メッセージのために使用することができ、有効期限を設定するためのキーを押して、有効期限は自動的に削除されます後

2. Redisのはに比べてメリットは何ですかmemcachedの?

(1)memcachedの全ての値は、代替のRedisのは、より豊かなデータ・タイプをサポートするように、単純な文字列である 
(2)のRedisはmemcachedのよりもはるかに高速である 
(図3)、そのデータのRedisを永続化することができ

3. Redisの一般的なパフォーマンスの問題と解決策:

(1)マスター最高のは、そのようなRDB AOFメモリのスナップショットとして、任意の永続的な仕事をしてログインしていないファイル 
(2)データは、スレーブオープンバックアップデータは、ポリシーは1秒に1回同期するように設定されているAOFより重要である場合 
(3)するためには、マスタ・スレーブ好ましくは、同じローカルエリアネットワーク内に接続中のコピー速度と安定性、マスターとスレーブ 
(4)メインデータベース内の圧力にライブラリからの大きな増加を回避するために 
、図の構造を複製しないマスタから(5)を、一方向リスト構造より安定した、すなわち:マスター< -スレーブ1 < - Slave2を  < - slave3 ...
問題を解決し、スレーブのマスターの交換を実現するために失敗したような構造の便利なシングルポイント。マスターがハングアップした場合は、すぐにスレーブ1を回すことができ、マスター、他の未変更を行います。

データはRedisの中にホットデータであることを確実にする方法4. MySQLのが2000ワットデータ、Redisの20ワットに保存されたデータのみ、

知識:Redisのインメモリデータは、特定のサイズにサイズを設定し、彼らはデータ消去戦略を実行します。Redisのは、政策のうち6つのデータを提供しています:

voltile-LRU:有効期限を設定し、データの組のうち最低使用頻度のデータの選択(server.db [I] .expires)で

揮発性-TTL:期限切れすべきデータの選択有効期限は、データセット(server.db [I] .expires)から設定されています

揮発性ランダム:有効期限は、任意のデータのうち、選択されたデータセット(server.db [I] .expires)から設定されています

allkeys-LRU:データセットから出て最低使用頻度のデータの選択(server.db [I] .dict)で

allkeysランダム:データセットからデータを選択する(server.db [I] .dict)任意

無envictionは(除名):追放データを禁止していません

Redisの5. Memcacheの差は何ですか?

1)、ストレージ

Memecacheすべてのデータがメモリ上に存在している、それはデータがメモリサイズを超えることはできません、停電後にハングします。

Redisのは、ハードディスク上の部分を持って、これは永続的なデータを確実にします。

2)データ型のサポート

データ型のサポートのためのmemcacheのは比較的簡単です。

Redisの複雑なデータ型。

3)異なる基礎となるモデルを使用して

それらの間とクライアントの基礎となるインプリメンテーション間の通信のためのアプリケーションプロトコルは同じではありません。

システムコールシステムの機能のほとんどは、それが移動して要求するためにいくつかの時間を無駄になりますので、RedisのVMは、自分の直接のメカニズムを構築します。

4)、値のサイズ

Redisのはmemcacheの唯一の1メガバイトながら、1ギガバイトまで可能

6. Redisの一般的なパフォーマンスの問題は何ですか?どのように解決するには?

スナップショットがパフォーマンスに比較的大きな影響が非常に大きいとき1)管理組織のビー玉は、メモリのスナップショットを作成しrdbSaveコマンドスケジューリング機能を保存し、作業のメインスレッドをブロックすることができ、それが断続的に中断されますので、マスターはメモリのスナップショットを書くことが最善ではありません。

2)管理組織のビー玉AOFは、永続的な、AOF文書を書き換えていない場合は、パフォーマンス上のこの永続的な方法の影響は軽微でありますが、AOFファイルは、復旧マスターの再起動の速さにAOFファイルあまり効果を育てます。1秒に1回のメモリのスナップショットとAOFのログファイルを含む任意の永続的な仕事を、行うにはない最高のマスター、特にメモリのスナップショットを有効にしないデータがより重要である場合には、永続的で、スレーブAOFのバックアップデータを開いて、同期の戦略。

3)AOF書き換えはCPUとメモリリソースの多量を占めるようになるときに、ファイルを書き換えるBGREWRITEAOF AOFを呼び出す管理組織のビー玉、サービス負荷が生じることは、サービス現象の簡単な懸濁液が高すぎます。

パフォーマンス上の問題から4)。Redisのレプリケーションマスタは、マスタコピー速度と安定性のために、スレーブとマスタは、好ましくは、同一のLANに接続されています。

7、Redisの最も適切なシーン

Redisのも持続的な機能を提供しますが、伝統的な意味での持続性と、ディスク・バックアップ機能の実際にはもっとあるが、Redisのシーンmomory内のすべてのデータのために最も適した、比較的大きな差があり、その後、我々は、おそらく意志質問がある、それを使用するときにMemcachedの、Redisのを使用する際に、より多くのRedisのMemcachedの強化版のように思える? 
あなたは、単にRedisのとMemcachedの間の違いを比較した場合、ほとんどが以下の点を取得します: 
1、Redisのは、単純なサポートだけでなく、データのK / Vタイプ、またストレージリストを提供しながら、セット、ZSET、ハッシュおよび他のデータ構造。 
2、Redisのバックアップデータ、すなわち、データのバックアップマスタ・スレーブモードをサポートします。 
3、Redisのは、データの永続性をサポートしていますが、再度使用するロードすることができたときに、メモリ内のデータがディスク上に保存することができ、再起動してください。 
(1)、セッションキャッシュ(セッション・キャッシュ)

最も一般的なシナリオは、Redisのセッションキャッシュ(セッションキャッシュ)を使用しています。Redisの永続性を提供します(例えばMemcachedのような)以外の記憶とRedisのキャッシングセッションの利点を有します。ユーザーのショッピングカートの情報が失われた場合には厳密に、キャッシュ・コヒーレンシを維持するために必要でない場合は、ほとんどの人が不幸になり、そして今、彼らはそうだろうか?

幸いなことに、Redisのこれらの年の改善と、それがどのようにRedisのキャッシングセッションを使用する権利文書を見つけるのは簡単です。でも、よく知られたビジネスプラットフォームMagentoのも、Redisのプラグインを提供しています。

(2)、ページキャッシュ(FPC)

基本的なセッショントークンに加えて、Redisのも、FPCのために非常に便利なプラットフォームを提供します。戻る一貫性、でも、Redisのインスタンスを再起動するので、永続ディスクの、ユーザーがPHPローカルFPCに似た大きな改善を、ある減少ページの読み込み速度を、表示されません。

Magentoのは、再び一例として、Magentoのは、フルページキャッシュバックエンドとしてのRedisを使用するためのプラグインを提供しています。

また、WordPressのユーザーは、パンテオンは素晴らしいプラグインWP-Redisのを持って、このプラグインは、あなたが訪問したページの読み込みの最速のスピードであなたを助けることができます。

(3)、キュー

フィールドメモリストレージエンジンでの大きな利点は、Redisのは、メッセージキューを使用するための良いプラットフォームとして機能することができますリストや設定操作を提供することにあるレイズ。Redisのリスト/ポップ操作のネイティブ言語(例えば、パイソン)プッシュ同様の動作キューとして用います。

Googleで「Redisのキュー」のための迅速な検索を行う場合は、オープンソース・プロジェクトの大規模な数を見つけることができるでしょう、これらのプロジェクトの目的は、様々なキューのニーズを満たすために非常に優れたバックエンドのツールを作成のRedisを使用することです。例えば、セロリは背景がブローカーとしてのRedisを使用することであり、あなたはここから見に行くことができます。

(4)、チャート/カウンタ

Redisのデジタル上または下のメモリ操作では非常によく実装されています。コレクション(セット)と順序集合(ソートセット)も、私たちに、これらの操作は、Redisのは、ただ単にこれら2つのデータ構造を提供し、非常にシンプルになって実行するための時間を確保できます。そこで、我々は最高の10人のユーザにランク取得するには、コレクションをソートする必要がある - 私たちは「user_scores」と呼んで、私たちは次のようなものを実行する必要があります。

もちろん、これはあなたの並べ替えに基づいて増加し、ユーザーのスコアをしている前提としています。ユーザーとユーザーのスコアを戻したい場合は、実行する必要があります。

ZRANGEのuser_scores 0 10 WITHSCORES

アゴラゲームは、その順位は、データを保存するためのRedisを使用することです、あなたがここで見ることができ、Rubyで実装され、良い例です。

(5)、パブリッシュ/サブスクライブ

最後に(確かではない以上)のRedisの機能をパブリッシュ/サブスクライブです。使用シナリオは非常に確かにあるパブリッシュ/サブスクライブ。私は人々がソーシャルネットワーキング接続を使用し見てきましたが、また、スクリプトトリガをパブリッシュ/サブスクライブ・ベースのチャットシステムを構築し、さらに機能をサブスクライブ/ Redisのを公開します!(いいえ、それは本当だ、あなたは確認するために行くことができます)。

Redisのは、すべての機能が、私はこの多機能ならば、それはユーザーに提供するが、これは、人の少なくともあるように感じています。

ます。https://my.oschina.net/u/1186503/blog/1632949で再現

おすすめ

転載: blog.csdn.net/choy9999/article/details/100591124