[] -Redis顔質問共通のインタビュー質問(B)

1. Redisのは何ですか?それは長所と短所を概説しましたか?

基本的にキー値Redisのメモリデータベースの種類、memcachedのようなもので、定期的にハードディスクに格納されるデータベースのデータをフラッシュすることにより、それらのすべて、非同期操作をロードするためのメモリ内のデータベース全体が動作します。

それは純粋なメモリ操作なので、Redisの性能は非常に良いですが、2回目の読み出しあたり10万回以上を処理し、操作を書くことができ、それがキー値DBの最速のパフォーマンスにはよく知られています。

パフォーマンスのRedisのだけではないの卓越性、Redisの最大の魅力は、単一の値の上限に加えて、保存されたデータ構造の多様性をサポートすることですRedisのは、多くの有用なために使用することができるので、memcachedのデータのみを、1メガバイト保存することができるとは異なり、1ギガバイトであります機能。

彼のセットは、高性能なタグシステムを行うことができますでの、彼は軽量、高性能のメッセージ・キューイングサービスを実現するためにFIFO二重リンクリストを行うにはリストだとしましょう。

また、Redisのは、また、キー値の預金の時間を期限切れに設定することができ、それはまた、使用するのmemcachedの機能強化版として使用することができます。大量のデータを読み取り、書き込み、物理メモリを制限することによりRedisのデータベース容量の主な欠点は、高性能で使用することができないので、適切なシーンRedisのは、主にデータおよび高性能コンピューティング操作を少量に制限します。

2、Redisのはに比べて利点は何ですかmemcachedの?

(1)memcachedのすべての値は、単純な文字列、その代替としてRedisのある豊かなデータ型をサポート

(2)のRedisのmemcachedよりもはるかに高速

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

3、Redisのはどのような種類のデータ型をサポートするには?

文字列、リスト、セット、ソートセット、ハッシュ

4、どのような物理的なリソースRedisの主要な消費?

メモリ。

5.何のRedisの略?

リモート辞書サーバー。

戦略のどのような種類のうち6、Redisのデータ?

noeviction:メモリの上限に達するとエラーを返し、クライアントがコマンドを実行しようとするより多くのメモリを使用できるようにする(書き込みコマンドのほとんどが、DELおよび少数の例外を除いて)

allkeys-LRU:使用されるキー回復試行(LRU)少なくとも、そのように新たに追加されたデータ・ストレージ・スペース。

揮発性-LRU:キー回復試行(LRU)少なくとも使用されるが、唯一の有効期限が切れたキーセットで、新たに追加されたデータ・ストレージ・スペースようにします。

allkeysランダム:ランダムなキー回復されたデータを新たにストレージ容量を追加されるように。

揮発性ランダム:ランダムなキー新たに追加されたデータ・ストレージ・スペースの回復が、唯一のキーの有効期限のセットの中のように。

揮発性-TTL:期限切れの鍵セットで回収し、生存時間(TTL)短い回復キーの優先度、新たに追加されたデータ・ストレージ・スペースようにします。

7、Redisの関係者はなぜ、Windowsのバージョンを提供していませんか?

Linuxの現在のバージョンは、Windowsのバージョンを開発することなく、非常に安定し、かつ利用者の大量でしたが、互換性の問題をもたらすので。

8、文字列型の値は、最大容量はどのくらいです保存することができますか?

512M

9. Redisのは、メモリにすべてのデータを置く必要があるのはなぜ?

Redisのは、最速の読み取りを実現し、メモリに、非同期データをディスクに書き込むことにより、高速データを書き込みます。

そのため、高速でRedisのデータ永続化機能。あなたは、メモリ内のデータを入れていない場合は、ディスクI / O速度が真剣にRedisの性能に影響を与えます。

メモリ今日安くなって、Redisのは、ますます人気になるだろう。あなたが使用する最大メモリを設定した場合、データが記録されている数に達したメモリ制限の後に新しい値を挿入し続けることができません。

10、Redisのクラスタプログラムが行う方法をすべきですか?解決策は何ですか?

1.codis。

現在、最も使用されるクラスタープログラム、基本的で一貫性のあるtwemproxy効果が、それは新しいハッシュノードに古いを復元するために、ノードの数、ノードデータの変更をサポートしています。

彼の一貫性ハッシュアルゴリズムによって特徴付け2.redis cluster3.0自身のクラスタは、分散が、ノードからハッシュスロット、ならびにそれらの支持ノードの設定の概念ではありません。具体的に説明する公式ドキュメントを参照してくださいします。

ビジネスコード層4.、それは次にRedisの動作例は、データに対応する、いくつかの無関係Redisの例から、コードレベルで、キーハッシュ計算です。このようにハッシュコードは、比較的高いレベルを必要とする、と考え部と、ノード障害アルゴリズムの代替実施形態の後、ショックの自動スクリプト・データ・リカバリ、例の監視、などが挙げられます。

11、どのような状況下で、Redisのクラスタリング方式は、クラスタ全体が使用できない原因でしょうか?

ノードBに障害が発生した場合の3つのノードA、B、Cを持つクラスタは、レプリケーションモデルが存在しない場合に、次にクラスタ全体が欠け、この範囲5501から11000のスロットが利用可能ではないと思われるであろう。

データはRedisの中にホットデータであることを保証するためにどのように12、MySQLは、そこに2000ワットのデータ、Redisの20ワットに保存されたデータのみ、?

データセットのRedisのメモリサイズは、特定のサイズに上昇すると、彼らはデータ消去戦略を実行します。

13、そこに適切なシーン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のを公開します!

14、Redisのは、Javaクライアントが何を持ってサポートしていますか?公式は、使用することをお勧めしますか?

Redisson、Jedis、レタスなどは、公式にはRedissonをお勧めします。

15、RedisのとRedissonの関係は何ですか?

Redissonは、高度な分散協調Redisの顧客サービス側であるユーザーが簡単に分散環境でいくつかのJavaオブジェクト(ブルームフィルタ、BitSetの、セット、SetMultimap、ScoredSortedSet、にSortedSet、地図、ConcurrentMapが、リスト、ListMultimap、キューを達成するために助けることができますBlockingQueueの、のDeque、BlockingDeque、セマフォ、ロック、ReadWriteLock、AtomicLong、たCountDownLatch、パブリッシュ/サブスクライブ、HyperLogLog)。

16、JedisとRedissonはどのような長所と短所を対比しますか?

Jedisは、APIは、Redisのコマンドのためのより包括的なサポートを提供し、クライアントのRedisのJava実装です。

特性、トランザクション、パイプライン、および他のパーティションをソートする分散型でスケーラブルなJavaデータ構造、およびJedis比較的単純な機能に比べて、文字列操作がサポートされていない、サポートされていないのRedisをRedisson。Redissonの目的は、それによって、ビジネスロジックにより狭く集中するユーザーを有効にすると、ユーザのRedisへの関心の分離を促進することです。

17、Redisのは、どのようにパスワードを設定し、パスワードを確認するには?

パスワード:設定セットrequirepass 123456

認証パスワード:認証123456

18、Redisのハッシュスロットの概念について話?

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

19、何からメインRedisのクラスタレプリケーションモデル?

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

20、Redisのクラスタは、それを失うことを書くのだろうか?なぜ?

Redisのは、一定の条件の下で動作しているとき、実際にクラスタが失われる可能性があることを意味し、データの強い一貫性を保証するものではありません。

21は、Redisのクラスタ間でコピーする方法ですか?

非同期レプリケーション

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

16384。

23、どのようにデータベースのRedisのクラスタを選択するには?

Redisのデータベースクラスタは現在0でデフォルトのデータベースを選択しないでください。

24、どのようにRedisのの接続をテストするには?

ピング

25、Redisのパイプラインでの使用は何ですか?

要求/応答サーバは、古いプロセス新しい要求が要求応答されていない場合でも実現することができます。これはあなたの返事を待たずに、サーバーに複数のコマンドを送信することができます、そして最終的に1つの段階で答えをお読みください。

これは、広く何十年もの間使用される技術である、パイプライン(パイプライン)です。例えば、多くのPOP3プロトコルが大幅にサーバープロセスからダウンロード新しいメッセージを加速し、この機能をサポートするために実装されています。

26、どのようにRedisの事務を理解するには?

トランザクションは、単一の分離操作である:すべてのコマンドが順次実行直列化された取引です。トランザクションの実行中に、コマンドが中断され、他のクライアントの要求に送信されません。

トランザクションはアトミック操作です:トランザクション内のコマンドは、すべての実行またはすべての実行されませんどちらか。

27、Redisのは、取引に関連するコマンドとその?

MULTI、EXEC、DISCARD、WATCH

28、Redisのキー有効期限と永久、それぞれ、どのように設定するには?

失効し、コマンドを永続化します。

29、Redisのは、どのようにメモリの最適化を行うには?

可能な限り、(ハッシュテーブルは、店舗数の内側少ないと言うことである)、(ハッシュ)ハッシュテーブルをハッシュテーブルを使用して使用されるメモリは非常に小さいので、あなたは内部のハッシュテーブルにデータモデルの抽象化としてでなければなりません。

例えば、あなたのWebシステムではなく、ユーザーの名前に、ユーザーオブジェクトを持って、最後の名前、電子メール、パスワード、別々のキーを設定し、ちょうど内部のハッシュテーブルにユーザーに保存されているすべての情報を考えます。

30、どのようにRedisの回復プロセスの仕事?

クライアントは、新しいデータを追加し、新しいコマンドを実行しています。

、制限maxmemory以上が所定のポリシーに従って回収した場合、メモリ使用量をチェックREDI。

新しいコマンドはように実行され、。

だから我々は常にによって境界線に到達し、その後国境に戻って回復していき、国境のメモリの制限を続行します。

コマンドの結果は、(例えば、新しいキーにセットの共通部分を大幅に節約するために)使用される大量のメモリが生じた場合はメモリの制限は、メモリ使用量を超えている前に、それは長くはありません。



著者:成功へのJavaの道
リンクします。https://www.jianshu.com/p/36a646cef11aの
出典:ジェーン・ブック
著者によって予約ジェーンブックの著作権、いかなる形で再現され、承認を得るために、作者に連絡して、ソースを明記してください。

ます。https://www.cnblogs.com/juihai/p/11079079.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34104341/article/details/93609090