乾燥の圧力下!ドライ!--Redisインタビューシリーズ()

Redisの?何であるかまず、
Redisの(リモート辞書サーバ)が書かれて使用してC言語で、オープンソース(BSDライセンス)、高性能の非リレーショナル(NoSQLの)キーの5種類のキーと値を格納できるデータベースマッピングの間。文字列値がサポートへのキーの唯一のタイプ5のデータ型:文字列、リスト、セット、ハッシュテーブル、順序付きセット。

それはRedisのデータがメモリ内に存在している従来のデータベースとは異なり、その読み取りと書き込みの非常に高速なので、広くキャッシュRedisの方向で使用されていることを、毎秒100,000以上の書き込み操作を処理することができ、パフォーマンスは最速知られていますキー値DB。また、Redisのも頻繁に分散ロックのために使用されています。また、Redisのは、トランザクション、永続性、LUAスクリプト、LRU駆動イベント、クラスタのさまざまなソリューションをサポートしています。

Redisのは完全に無料のオープンソースであり、BSDは、契約を遵守し、それが高性能なキーと値のデータベースです。

二、Redisのと他のキー-値のキャッシング製品は、次の3つの特徴を有する:
(1)Redisのは、あなたが再利用できる負荷に再起動、メモリ内のデータをディスクに保存することができ、データの永続性をサポートしています。

また、記憶リスト、セット、ZSET、ハッシュおよび他のデータ構造を提供しながら、(2)のRedis、簡単なキー値のデータ型をサポートしません。

(3)Redisのバックアップデータ、すなわち、データバックアップマスタ・スレーブモードをサポートします。

三、Redisのは長所と短所は何を持っている
利点を

(1)高性能 - Redisの速いとして11万回/ sと読むことができ、書き込み速度は81000回/ sです。

(2)豊富なデータ・タイプ - Redisのバイナリケース動作の文字列、リスト、ハッシュ、セットおよび順序集合データ・タイプをサポートします。

(3)原子 - Redisのは、すべての操作は、いずれか成功するか、完全に実行され、実行に失敗することを意味し、アトミックです。これは、単一の原子操作です。動作の複数は、マルチラップによってトランザクション、すなわち原子性、およびEXEC命令をサポート。

(4)豊富な機能 - Redisのも、支持体には、通知、キーの有効期限とその特性上、パブリッシュ/サブスクライブ。

2持続性の種類とRDB AOFの方法をサポートし、サポートへのデータの永続性、読み取りと書き込みのパフォーマンスグッド。Redisのは、また、合併後のいくつかの操作のアトミック実行をサポートしながら、サポートサービスは、すべての操作は、アトミックRedisのです。文字列型のサポートの値に加えて、豊富なデータ構造は、また、ハッシュ、セット、ZSET、リストデータ構造などをサポートしています。サポートレプリケーションマスタ・スレーブ、ホストは自動的に別の読み取りと書き込みが行われてもよい、スレーブにデータを同期します。

短所

データベース物理メモリ容量が制限されている高性能読み書きマスデータとして使用することができない、適切なシーンのRedisは、このように大部分のデータと高性能コンピューティングの操作の少量に制限します。

Redisのは、ホストマシンのダウンタイムからの自動耐障害性と回復は、要求が失敗した読み取りや書き込みの先端部、またはフロントエンドIPを復元するために手動で切り替えを再起動するマシンを待つ必要になります持っていません。

データの前部ダウンホストのダウンは、また、データの不整合がIPを切り替えた後、システムの可用性が低下紹介し、スレーブに同期させるために失敗しました。

Redisのは、オンライン容量拡張をサポートすることはより困難である、オンライン容量拡張は上限が非常にクラスタ容量が複雑になります達します。この問題を回避するには、運用、保守担当者はリソースの無駄の多くを引き起こし、十分なスペースのオンラインシステムがあることを確認する必要があります。

四、Redisのと他のキーと値のストアの違いは何ですか?
(1)Redisのは、より複雑なデータ構造を有しており、他のデータベースの進化経路とは異なるそれらにアトミック操作を提供します。一方、Redisのデータ型は、追加の抽象化を必要とせずに、プログラマに対して透過的、基本的なデータ構造に基づいています。

(2)Redisの高速読み取りおよび書き込みメモリトレードオフ異なるデータセットときにデータがハードウェアメモリの量よりも大きくすることができないのでこと、メモリで実行されているが、ディスクに保存することができます。あなたが内部のRedis非常に複雑な問題の多くを行うことができますので、インメモリ・データベースのもう一つの利点は、同じ複雑なデータ構造に比べて、ディスク上の非常に簡単なメモリで動作します。彼らはランダムアクセスを必要としないので、一方、そのコンパクトディスクフォーマットの面で、追加の方法を生成します。

五、Redisのデータ型?
文字列(文字列)、ハッシュ(ハッシュ)、リスト(一覧)、セット(集合)とzsetsortedセット::順序集合)Redisのは、5つのデータ型をサポートしています。

あなたはシニアRedisのユーザーですが、また、いくつかのデータ構造ジオ、以下HyperLogLog、パブ/サブを追加する必要がある場合は私たちの実際のプロジェクトでは、より一般的に使用される文字列、ハッシュされています。

あなたも果たしRedisのモジュールを言うなら、ブルームフィルタ、RedisSearch、Redisの-MLのように、インタビュアーは目が光アップを始めました。

第六に、何があるのRedisを使用する利点?
(1)高速、データがメモリに格納されているので、HashMapのと同様に、HashMapの利点

(2)豊富なデータ型のサポート、サポート文字列、リスト、セット、ZSET、ハッシュなど

(3)サポートサービスを、操作は、いずれかのすべての実行またはすべて実行されていないデータへのいわゆるアトミック変更原子であります

(4)豊富な機能セット:キャッシング、メッセージのために使用することができ、有効期限を設定するためのキーを押すと、自動的に失効した後に削除されます

七、Redisのは利点は何のMemcachedを比較しましたか?
すべての値(1)Memcachedのは、単純な文字列で、その代替としてのRedis、データは、より豊かなクラスをサポート

(2)のRedisが速くMemcachedのより

(3)Redisのは、そのデータを永続化することができます

八、MemcacheのとRedisの違いは何ですか?
(1)データ記憶Memecacheメモリ内のすべての存在は、停電がハングアップし、データは、メモリサイズを超えることはできません。Redisのは、ハードディスク上の部分を持って、これは永続的なデータを確実にします。

(2)データ・タイプをサポートするデータのタイプは、比較的単純なMemcacheのサポート。複雑なデータ型をRedisの。

(3)それらとクライアントの基本的な実装の間でアプリケーション間の通信のための異なるプロトコルを使用して、基礎となるモデルが同じではありません。システムコールシステムの機能のほとんどは、それが移動して要求するためにいくつかの時間を無駄になりますので、RedisのVMは、自分の直接のメカニズムを構築します。

ナインは、最大容量を格納できる文字列型の値はどのくらいですか?
512M

テン、メカニズムのRedis永続何ですか?彼らの長所と短所?
Redisの永続化機構はRDBとAOFのために2つのメカニズムを提供します。

RDBRedisのデータベース)の永続的な方法:

道のデータセットの半永続モードのスナップショット)持続性の終了後の時点で、一時ファイルデータに書き込まれたすべてのキーと値のペアのRedisデータベースを、レコードを参照し、この一時ファイルは、最後の永続化に置き換えられますデータ復旧にファイル、。

利点:

一つだけのファイルdump.rdb、便利な持続性は、(1)があります。

(2)災害復旧は、ファイルがディスクのセキュリティに保存することができ、良いです。

(3)最大化のパフォーマンスは、フォークの子プロセスはとてもIOが最大で、メインプロセスがコマンドを処理し続けるように、書き込み操作を完了します。存続するために別の子プロセスを使用して、メイン処理)は、高性能のRedisを確保し、任意のIO操作をしません

場合AOF効率的プロモーターのより高い比率に対して大きなデータセット(4)。

短所:

データセキュリティは低いです。RDBは、障害が永続間で発生した場合のRedis、データの損失が発生する可能性があり、持続時間遅れです。このアプローチは、要件が厳格でないデータに適しているので、

AOFAppend専用ファイル)永続的な方法:

これは、ファイルとして保存AOF)完全に一致Redisのコマンドは、永続的なストレージを要求し記録するために、コマンドライン形式のすべてを指します。

利点:

(1)データ・セキュリティ、AOF持続性は、常に存在し、appendfsync特性を構成することができるAOFファイルに記録動作の各コマンドに対して一度。

(2)ライト・ファイルは、サーバーがデータの整合性の問題は、Redisのチェック-AOFツールによって解決することができ、途中でダウンしている場合でも、モードを追加します。

(3)書き換えモードAOF機構。AOFファイル(ファイルが大きすぎると、書き換えコマンドをマージします)リライトされていない前に、あなたは()などflushallの誤用など)これらのコマンドの一部を削除することができます

短所:

(1)AOFファイルには、RDBファイルよりも大きく、回復が遅いです。

データセットが大きい場合(2)、効率が開始RDBよりも低いです。

セブンイレブン、Redisの一般的なパフォーマンスの問題と解決策:
(1)マスターは、マスター・ライト・メモリのスナップショット場合rdbSaveコマンドスケジューリングセーブ機能、メモリのスナップショットを書くことが最善ではありませんスナップショットのペアは、比較的大きな衝撃性能であるとき、仕事のメインスレッドをブロックすることができます非常に大規模な、断続的に中断されます

データは、スレーブオープンAOFバックアップデータより重要である場合(2)は、ポリシーが同期秒に設定されています

速度と安定性のマスターコピー(3)から、マスターとスレーブは、好ましくは、同じローカルエリアネットワークに接続されています

(4)メインライブラリに多くの圧力から増加しないようにしてください

(5)DOは、すなわち、より安定した方法リンクリスト構造で、構造のような図からマスターコピーを使用していない: - スレーブ1 < - Slave2を< - マスター<Slave3 ...失敗のような構成の便利な単一点を解決するため、マスタスレーブの交換が実現します。マスターがハングアップした場合は、すぐに変えることができますスレーブ1はマスター、他の未変更を行います。

Redisのキーを期限切れポリシーを削除XII?
(1)定期的に削除します。キーの有効期限の時間設定を、同時に、タイマーのタイマーを作成する)タイマーは、キーの時間が来る時をもって任期満了とすぐにキーの削除を実行してみましょう。

削除不活性(2):放任キーは関係なく、期限が切れますが、有効期限が切れた場合には、各時間はスペースキーからキーは、キーの有効期限が切れたかどうかを確認するために作られ、それは、キーを削除します。有効期限が切れていない場合は、キーを返します。

(3)定期的に削除:データベースプログラム内のすべての一度の期限切れのキーを削除した検査を、実施します。あなたが期限切れのキーを削除するだけでなく、データベースの数、アルゴリズムの決定を確認したいどのくらいのためとして。

XIII、メモリにすべてのデータを置くのはなぜEDIS必要?
Redisのメモリへの最速の読み取りと書き込み速度データを得るため、および非同期データをディスクに書き込むことで。そのため、高速での機能の永続データをRedisの。真剣にあなたがメモリ内のデータを入れていない場合は、ディスクI / O速度はRedisののパフォーマンスに影響を与えます。メモリ今日安くなって、Redisのは、ますます人気になるだろう。あなたが使用する最大メモリを設定した場合、データが記録されている数は、メモリの制限に達した後に新しい値を挿入し続けることができません。

フォーティーン、Redisの同期メカニズムは、それを理解するには?
Redisのマスタ-スレーブ同期は、同期から、使用されてもよいです。メモリバッファに続く変更の記録動作が完了した後、RDB画像がメモリにロードされたノードのコピーが完了した後、ファイルのコピーノードの総量に受け入れ同期さRDBながら最初の同期は、マスタノードは、一度bgsaveありません。ローディングが完了し、その後ノードレコード同期再生同期処理に変更されたコピーの動作時にマスタノードに通知した後に完了する。

フィフティーン、パイプラインの利点は何ですか、なぜパイプラインする必要がありますか?
複数のIO往復時間を設け、一方に低減することができる命令実行パイプラインの間には因果関係。QPSのピーク値が重要な要因は、バッチ命令パイプラインの数であるRedisの場合に圧力測定のために使用Redisのベンチマークを求めることができます。

シックスティーンは、使用Redisのクラスタかどうか、クラスタがどのような原則ですか?
高可用性の(1)Redisのセンチネルの焦点は、マスター・スレーブでダウンタイムが自動的にマスターに昇格、サービスを提供し続けています。

スケーラビリティ上の(2)のRedisクラスターフォーカス、単一のRedis十分なメモリが、メモリの断片化クラスタを使用。

セブンティーン、どのような状況下で、Redisのクラスタリング方式は、クラスタ全体が使用できない原因でしょうか?
レプリケーションモデルの非存在下での3つのノードのA、B、Cを持つクラスタ、ノードBに障害が発生した場合、クラスタ全体がそれがこの範囲5501から11000のスロットが利用可能でない欠く思うだろう。

十八、Redisのは、Javaクライアントが何を持ってサポートしていますか?公式は、使用することをお勧めしますか?
Redissonは、Jedisは、レタスなど、公式にはRedissonをお勧めします。

十九、JedisとRedissonコントラストどんな長所と短所?
、Redisson分散かつスケーラブルなJavaデータ構造、およびJedisは、関数に比較的単純な比較、文字列操作をサポートしていません。Jedisは、クライアントのRedisのJava実装で、APIは、Redisのコマンドのより包括的なサポートを提供しますRedisのプロパティは、発注、取引、配管、ゾーニングなどをサポートしていません。Redsson目的は、それによって、ビジネスロジックにより狭く集中するユーザーを有効にすると、ユーザのRedisへの関心の分離を促進することです。

二十、Redisのは、どのようにパスワードを設定し、パスワードを確認するには?
パスワード:コンフィグ設定requirepass 123456

認証パスワード:認証123456

Redisのハッシュスロットの概念についてXXIの話?
クラスタの各ノードは、Redisのにハッシュ一貫性を使用するが、ハッシュスロット、16384個のクラスタRedisのハッシュスロット、配置されるチャネルを決定するモジュロ16384のCRC16チェックサムによって各キー、クラスタの概念を導入していませんハッシュスロットの一部を担当します。

XXII、何からメインRedisのクラスタレプリケーションモデル?
クラスタのために部分的な障害ノードの場合に利用可能なままであるか、ほとんどのノードが通信することができない、それはマスターコピーモデルからクラスタを使用し、各ノードは、N-1の複製を有します。

二十三、Redisのクラスタは、それを失うことを書くのだろうか?なぜ?
Redisのは、一定の条件の下で動作しているとき、実際にクラスタが失われる可能性があることを意味データの強い一貫性を保証するものではありません。

Redisのクラスタ間のXXIVはコピーする方法ですか?
非同期レプリケーション

XXVは、クラスタの最大数は、Redisのはどのくらいあるノード?
16384。

XXVI、どのようにデータベースのRedisのクラスタを選択するには?
Redisのデータベースクラスタは現在0でデフォルトのデータベースを選択しないでください。

Redisのの接続をテストする方法XXVII、?
pingコマンドを使用します。

XXVIIIは、どのようにRedisの情勢を理解するには?
(1)トランザクションは、単一の分離操作である:トランザクションのすべてのコマンドシーケンスが順次行われます。トランザクションの実行中に、コマンドが中断され、他のクライアントの要求に送信されません。

(2)トランザクションがアトミック動作である:コマンド・トランザクションは、いずれかのすべての実行され、またはすべての実行されません。

29人、Redisのは、取引に関連しているのコマンド?
MULTI、EXEC、DISCARD、WATCH

三十、Redisのキーの有効期限と永久、それぞれ、どのように設定するには?
失効し、コマンドを永続化します。

限られたスペース、より多くの情報がください連絡先をインタビューする必要があります。

QQ取得
グループチャットのJavaアーキテクチャに参加するためのリンクを[グループ]学習交流:https://jq.qq.com/?_wv=1027&k=5Gxc9ic
ない一般的に使用されるQQ小さなマイクロチャネルパートナー(〜ああチャネルのグループについてのメモを追加することを忘れないでください)を取得することができます
口座番号:13272413561

おすすめ

転載: blog.51cto.com/14587687/2459735