2020PHPインタビュー-Redis記事

A、Redisのデータ型

1.文字列の文字。

構造化2.hashハッシュオブジェクト。キーを繰り返すことはできません

3.listキューlpush RPOP LPOP rpush  

4.設定した設定値を繰り返すことはできません

5. ZSETはセットに基づいて設定プラス画分(ソート)を注文しました。

 

二、Redisの業務

1.multi(トランザクション開始)、のexec(トランザクションの実行)、いくつかのキーを監視時計が(変更された任意のキーが存在する場合、幹部は、直接リターンnilをすることはないだろう、他のクライアントが変更されていません執行部)、廃棄(、すぐにすべてのコマンドキューの空のトランザクションをトランザクションを取り消します)。

2.redis watched_keysデータベースは、辞書、辞書のキーキーが監視されているが存在しますが、キーは、キーを監視するために一度の変更を持っている、キーが対応するクライアントモニタに記録されたリンクリストの値クライアントはREDIS_DIRTY_CASが破壊され、クライアントのトランザクションのセキュリティに代わって、特定開きます。これは、watchコマンドを達成しています。

3.なぜRedisのトランザクションがロールバックをサポートしていませんか?

  これは、洗練された機能やRedisのデザインと一致していませんので。開発環境でのみ発生したエラー、エラーの原因をプログラミング業務をRedisのは、通常は、本番環境を避けることができています。

4.redis transactionコマンドの実行が間違った結果?

  Redisのは、その後の動作コマンドを実行していきます、トランザクションを割り込み実行されません。エラーが識別されたときのexecコマンドが出てくると理由を与えるだろう。

5. Redisのトランザクションの持続性、持続性AOFスナップショットモードを使用している限り、道の影響を受け、その値は常にappendfsyncオプションで、プログラムは常に機能同期(シンク)呼び出し本当にコマンド、コマンドデータを実行した後ハードディスクに保存されました。

  PS:だけのための方法のRDBの言葉の、唯一の特定の保管条件の下で行わサーバはRedisの場合BGSAVEコマンドと実行非同期BGSAVEコマンドをすることができ、データのトランザクション初めてハードディスクに保存されていることではない保証。

 

三、Redisのキャッシュとキャッシュ貫通雪崩

  キャッシュの浸透:

  一部の悪質な要求は、問い合わせキーの故意に多数存在しません。

    どのように回避します:

    1.キークエリ結果は空も状況キャッシュ、キャッシュ短い期間の設定、またはキーが挿入されると、キャッシュの更新をクリーンアップするのです。

    特定のキーの上に2.事前フィルタは、フィルタに大きなビットマップに、すべての可能なキーを存在する、またはブルームフィルタを使用しません。

  キャッシュ雪崩:

  同時に、集団的失敗の大きなキャッシュ。

    どのように回避します:

    1.キャッシュ無効化デシベルロックまたはエンキューコントロールの数が多い、同時の数を制御します。

    2. L2キャッシュを作成します。短期的にキャッシュされたコピーのためのA1。長期のオリジナルキャッシュのA2。ときA1の失敗、アクセスA2。

    3.でも物事に異なるキーセット異なる妥当性、レッツ・エイジングキャッシュノードを試してみてください。

 

四、Redisのスレッドモデル

処理のために、対応するイベントハンドラに割り当てられたイベントタイプのソケットによれば、シングルスレッド、ファイルに基づいて、イベントマネージャ(ファイルイベントハンドラ)、I / Oマルチプレクサ、同時にソケットを聴取する複数の。

 

五、Redisの有効期限ポリシー

1.定期的に削除します。

  各100msのランダムに選択されたキーの有効期限が切れている、削除された期限切れ。(詩:ごとにチェックすると、すべてのキーが立ち往生となります。)

削除不活性2:

  キーは期限切れの検査がある場合、キーを取得し、削除された有効期限が切れています。

 

あなたは定期的に削除するには削除しないでください、と何の要求は、特定のキー、メモリを占有されていたキーを取得しないようにした場合。より多くのメモリ、メモリが消去メカニズムをトリガします。

 

六、Redisのメモリ除去メカニズム

1.noeviction:いないデータのうち、書き込みエラー。

2.allkeysランダム:すべてのデータから任意のデータを選択します。

3.allkeys-LRU:すべての最も最近使用されたデータが除去されたから選択したキー。

4.volatileランダム:有効期間中に提供されたデータから任意のデータを選択します。

5.volatile-LRU:位相アウト期間のセットから最低使用データになりますキーを選択します。

6.volatile-TTL:期間における鍵データセットから最短生存時間を選ぶを除去しました。

 

七、RedisのとMemcachedの違い

1.memcached支持体は文字列のみ。Redisのは、多様化の5種類をサポートしています。

永続2.memcachedサポートしていません。Redisのは、RDBとAOFスナップショットをサポートしています。

3.全体的に、より少ないメモリ使用量は、いくつかのRedis。

 

八、利用できるどのような時ではないのRedisのクラスタ

不完全ハッシュスロットを生じる、任意のマスタなしスレーブマスタとライブラリからの電流を掛ける1.。

マスターダイの半分よりも2より。

 

九、Redisのハッシュスロット

どのスロットを決定するために16384を法のCRC16チェックにより、各キーの後に一貫性のハッシュリング、16,384スロットのRedisのハッシュクラスタ全体のコンセプト好きではありませんでした。スロットの一部を担当するクラスタの各ノードには、あなたは簡単にノードを追加したり削除することができます。

 

テン、Redisの永続性モード

1.RBD:フォークの子プロセス、メモリRDBファイルへの記録データにコピーオンライトコピーオンライト技術を使用して。

2.AOF:ファイルへの追加書き込みにRedisの操作ログ。

PSは:4.0サポート混合永続性をRedisの。インスタンスの再起動をRedisの場合は、使用RDBは、メモリの大部分を再構築します。その後、再起動前の状態にAOF再生スナップショット、元に戻すを使用しています。

 

そのファイルサイズを小さくする方法セブンイレブン、AOF

bgrewriteaof AOFを書き換え、書き換え成功が置き換えられます。

 

十二、Redisのマスター・スレーブ同期

1.事前同期、マスタノードを最初bgsaveに、メモリバッファに続く変更の記録動作します。その後のRDBファイルが完全にメモリを構築し、ノードに同期されます。次に、同期の動作を変更するためにバッファメモリにマスタノードに通知し、ノードから再生終了します。

 

サーティーン、Redisのキュー

パブ/サブモードの消費者のオフラインデータの生産者のバックログであれば、この時点では、データが失われます、AOFリアルタイムでない場合。

 

第四に、データベース、キャッシュ書き込み一貫性を倍増

データベースを更新し、キャッシュを削除します。あなたがキークエリーにフォローアップを行う必要がある場合は、書き込みキャッシュにデータベースをチェックしに行く、キャッシュが存在しません確認してください。

 

おすすめ

転載: www.cnblogs.com/camouflage/p/12369655.html