Javaのインタビュー-Redisベース360°無死ん鼓動とぶら下がっインタビュアー

Redisのストレージでのインターネット技術を、このような広範な使用は、ほぼすべての面接のためのバックエンド技術の小型のさまざまな局面でのパートナーとのRedisの原則のために物事を困難にする必要があります。(数百人を介したインターネット技術産業におけるストライキとして、それはレトリックを誇張私が使用することを許可してください)、失望左数え切れないほどの孤独な数字見上級技術インタビュアー、多少有罪、それはこの記事を発表しました私は失敗することはありません、あなたにインタビューgangbustersのような読者を願っています!

少年、Redisのデータ構造、あなたは何を知っていますか?

文字列、辞書、ハッシュ、一覧リスト、セット、にSortedSetの順序集合の集まり。

ここで私は、読者の99%が5つの基本的なデータ型の最大のRedisに答えることができると信じています。

ただし、シニアRedisのユーザーですが、また、いくつかのデータ構造を以下HyperLogLog、ジオ、パブ/サブを追加する必要がある場合。

あなたはまた、Redisのモジュールを果たしたと言うならブルームフィルタ、RedisSearch、Redisの-MLのように、インタビュアーが目が光るようになったし、私は若い男に思っ少し何かを

注:本人在面试回答到Redis相关的问题的时候,经常提到BloomFilter(布隆过滤器)这玩意的使用场景是真的多,而且用起来是真的香,原理也好理解,看一下文章就可以在面试官面前侃侃而谈了,不香么?下方传送门 ↓

避け武器のブルームフィルタは、内訳をキャッシュ

使用済みRedisのは、何が起こっているかである、それをロックし、分散しましたか?

その後、Setnx、ロックを取得するためのスクランブル、つかんで、有効期限は、ロックが解除忘れを防止期限切れにロックを追加します。

他はあなたを教えてくれます。この時間は、あなたは非常によく答え、その後、実行前の偶発的クラッシュがsetnxプロセスの後に期限切れまたは維持し再起動するかどうか尋ねるようになったし、何が起こりますか?

まあ、ああ、このロックが解除されることはありませんされています。今度は、フィードバック驚きを与える必要があります。そして、あなたが自分自身を取得する必要があり、次の結果は、あなたが出て考えるためのイニシアチブをとることであるかのように、一瞬考えるように装って、彼の頭に傷、そして答えた:私は、パラメータの非常に複雑な命令セット、これを可能にし、同時にsetnxに失効すべきであると覚えています命令の合成に使用します!その後、他の側には、笑顔を明らかにする、と私の心は暗唱し始めた:プレスは、この子供はかなり良いですが、少しは意味します。

それらのすべてが見つけることならば、キー10ワットは、既知の固定プレフィックスで始まる持っ億Redisのキーは、ありますか?

キー命令は指定されたパターンのキーのリストを一掃する使用します。

このRedisのは、ビジネスラインにサービスを提供している場合は、命令が問題になるのキーを使用してください。そして、お互いに尋ねますか?

あなたが持っているこの時間は、キー特性のRedisに答えるために:Redisのシングルスレッド。キー命令はいくつかの時間のためにブロックされたスレッドを起こした命令が終了するまで、オンラインサービスは、サービスを復元することができ、失速されます。今回のスキャンコマンドを使用することができ、スキャンコマンドは、パターンを指定したキーのノンブロッキングリストを抽出することができますが、クライアント側の重複排除で、確率のいくつかの重複があるだろうが、一度に行うことができますが、全体的な時間は割合に直接過ごしキーの司令官。

非同期キューを何をするのRedis使用、どのように使うのですか?

構造は、一般的にキューリスト、rpushメッセージ生産、LPOP消費メッセージとして使用されています。適切な睡眠へのメッセージは、もう一度試していないだろうときLPOP。

それを尋ねる人は眠ることができない場合は?blpopと呼ばれる命令のリストには、メッセージが到着するまで、情報がない場合には、それがブロックされます、があります。

消費者を生み出すことができない人は何度もそれを求めた場合は?Nメッセージキュー:パブ/サブトピックサブスクライバモードを使用して、あなたは1を達成することができます。

彼らはパブリッシュ/サブスクライブを依頼した場合の欠点は何ですか?組立ラインオフ消費者の場合には、生産は、メッセージキューがそうでRabbitMQのようプロを使用する必要がありますと、メッセージが失われます。

人はRedisの遅延キューを達成する方法を尋ねる場合は?

このセットでも、私はあまり詳しく依頼する方法、そして、今、あなたはスティックに入れたいと思い、あなたは野球のバットを持っている場合は面接を殺害し、下に移動します。しかし、あなたは非常に控えめで穏やかな物腰は答えた:使用したSortedSetを、ニュースを生成するためにzadd呼び出すためのキー、前zrangebyscore命令で処理されたポーリングデータN秒に消費者のアクセスとして、スコアとしてメッセージの内容をタイムスタンプを取ります。

ここでは、インタビュアーは密かにあなたの親指アップしています。しかし、彼は現時点ではわからなかったあなたは、椅子の背に中指を立てているということです。

同時に設定するキーのニーズの多数の有効期限が切れている場合、一般的には、注意が必要ですか?

その時点で、あまりにも集中設定キー有効期限が多数の有効期限が切れた場合、Redisのは一瞬ケイトン現象があります。一般的に、分散剤のいくつかのことを、時間をかけて有効期限をランダムな値を追加する必要があります。

Javaおよび貫通インタビュー-Redis雪崩

どのようにRedisの持続性はありますか?

持続性の全額をミラーリングするbgsave、AOF増分永続化を行います。bgsaveは長い時間ではなく、AOFを使用する必要があるので、ダウンタイムの多くは、データの損失につながることができ、リアルタイムに、かかりますので。Redisのインスタンスの再起動は、メモリを再構築した後、再起動する前に、完全な回復の状態を引き起こすことが、最近の取扱説明書とAOFリプレイを使用するbgsave永続ファイルを使用する場合。

他には、突然の停電ならば、マシンが起こることを尋ねましたか?ログ同期属性AOF性能が要求されていない場合、設定に応じて、各ディスクの書き込み命令同期の時点では、彼らはデータを失うことはありません。しかし、すべての同期の高いパフォーマンス要件にそれは一般タイミング同期、など1S1回、それがデータ1sのほとんどを失うことになる。この時間を利用して、現実的ではありません。

その他は原則が何であるかを尋ねたbgsave?あなたは、それの上にフォークと牛を二つの言葉を与えられています。フォークが子プロセスを作成することにより、bgsaveするのRedisを意味し、牛はコピーが書き込み、子、親と子の共有データセグメント上で作成されることを意味し、親プロセスが汚れページデータを書き込むために識字サービスを提供し続けます徐々にサブプロセスの分離オフ。

注:回答这个问题的时候,如果你还能说出AOF和RDB的优缺点,我觉得我是面试官在这个问题上我会给你点赞(暗示点赞),两者其实区别还是很大的,而且涉及到Redis集群的数据同步问题等等。不多BB我又给你们整理好了 ↓

Javaのインタビューとデータ同期モードのRedisの持続性

パイプラインの利点は何ですか、なぜパイプラインする必要がありますか?

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

Redisの同期メカニズムは、それを理解するには?

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

何が今までRedisのクラスタを使用し、クラスタが原則ですか?

高可用性のRedisのセンチネルフォーカス、自動的にマスターに昇格マスタースレーブでのダウンタイムは、サービスを提供し続けています。

クラスタRedisのは、単一のRedisのメモリ不足、クラスタを使用して、メモリの断片化しながら、拡張性に焦点を当てます。

技術概要

あなたは実用的な例を与える、またはその質問を指示し、収穫あれば技術的なインタビューの中で、どんな問題やRedisの、自分自身の開発プロセスは、クラブの多くを追加印象をインタビュアーを与えないだろう、論理的な答えは、少し強いはずハローの周りに自分自身を置くことは容易である1時イーストウエストを実行します。

もう一つのポイントは、私はあなたがRedisのbarabara回答の質問に来る使用していない、なぜ、あなたは返信することができますあなたを求めるということです。

私たちの最初のプロジェクトDBは運ぶことができませんでした基本的には、特にこのようなシナリオのスパイクとホットデータDBで、ボトルネックが発生し、それがキャッシュミドルウェアを追加する必要があり、現在の市場いくつかのキャッシュミドルウェアのbarabara、長所と短所がありますbarabara、我々は最終的に選んだの技術選択で何時間

あなたはこのように念入りに私の質問に答えたが、私の質問の外ではあまり知識を発声した場合、私はあなただけのコードを書いていない誰か、あなたの技術選択を見つけるだろう、ミドルウェアのプロジェクトは、独自のを持っています理解と思考。

すなわち、この記事のためにすべてですまあ、私は後でインタビューや記事に関連するテクノロジー・スタックのJavaを更新していきます


                                               你知道的越多,你不知道的越多
复制代码

その後、歓迎、便利な検索 关注 点赞 分享

青プロパン|ウェン

おすすめ

転載: juejin.im/post/5db66ed9e51d452a2f15d833