1.0 Redis の永続性 Redis はメモリ内データベースです。サーバー プロセスが終了すると、データベース データは失われます。この問題を解決するために、Redis はメモリ内のデータをディスクに保存してデータ損失を回避する 2 つの永続化ソリューションを提供します。 1|1RDB 永続性 Redis は、指定された時間間隔内のデータセットのポイントインタイムスナップショットを生成する RDB 永続化機能を提供します。この機能により、メモリ内の Redis の状態をハードディスクに保存できます。RDB 永続化によって生成される RDB ファイルは圧縮されたバイナリファイルです。このファイルはハードディスクに保存されます。Redis はこのファイルを通じて、その時点のデータベース状態を復元できます。 手動で実行できます。 redis.conf で設定して定期的に実行することもできます。 利点: 高速、バックアップに適しており、マスタースレーブレプリケーションはRDB永続機能に基づいています rdbはredisのsaveコマンドを使用してrdbをトリガーします rdb 構成パラメータ: ポート 6379 悪魔化する はい pidファイル /data/6379/redis.pid ログレベル通知 ログファイル "/data/6379/redis.log" ディレクトリ /data/6379 保護モード はい dbファイル名 dbmp.rdb 900 1 を節約 300 10 を節約 60 10000を節約 900秒ごとに、永続化される操作があります 1 回の変更操作で 900 秒節約 10回の操作で300秒節約 60秒節約 10000回の操作 2. rdb永続化をトリガーするか、コマンドを手動で保存してdump.rdb永続化ファイルを生成します。 3. Redisを再起動すると、データは失われなくなります 4. RDB データ ファイルはバイナリ ファイルであり、手動で読み取ることはできません。 1|2 Redis 永続性 AOF
サーバーが実行したすべての変更操作コマンド(set delなど)を記録し、サーバーの起動時にこれらのコマンドを再実行してデータセットを復元します。 AOF ファイル内のすべてのコマンドは Redis プロトコルの形式で保存され、新しいコマンドはファイルの末尾に追加されます。 利点: 最大限のプログラムにより、データが失われないことが保証されます デメリット: ログレコードが非常に大きい 構成 1. 設定ファイルにaofパラメータを追加します aof 機能を有効にするには、redis-6379.conf にパラメータを追加します。 追加のみ はい 毎秒追加同期 2. Redisデータベースを再起動し、aof関数をロードします。 3. Redisデータディレクトリ/data/6379/がaofファイルを生成しているかどうかを確認する [root@web02 6379]# ls appendonly.aof dbmp.rdb redis.log 4. redis-cliにログインし、データを書き込み、AOFファイル情報をリアルタイムで監視する tail -f 追加のみ.aof 5. 新しいキーを設定し、AOF情報をチェックし、Redisを閉じてデータが永続的かどうかを確認します。 redis-cli -a redhat シャットダウン redis サーバー /etc/redis.conf redis-cli -a レッドハット Redisを再起動せずに、rdbデータをaofデータに切り替える 1. RDB永続性をサポートするようにRedisを構成する 2. Redisクライアントを起動し、コマンドで一時的にaofモードに切り替えます。 127.0.0.1:6379> CONFIG 追加のみを yes に設定 わかりました 127.0.0.1:6379> CONFIG SET 保存 "" わかりました 3. データ永続モードがrdbかaofかを確認し、appendonly.aofファイルをチェックして、データの変更をチェックします。 tail -f 追加のみ.aof 4. この時点では、AOFはまだ永続的に有効になっていません。パラメータを設定ファイルに書き込みます。 redis-6379.confを編集し、次のパラメータを追加します。
2|0 マスタースレーブ同期 Redis マスタースレーブ同期の実装 1. 3つのRedisデータベースを用意します。Redisは複数のインスタンスをサポートします。 3つの設定ファイル、ポートのみ異なる 3つの設定ファイルにマスタースレーブ同期パラメータを追加します redis-6379.conf ポート 6379 悪魔化する はい pidファイル /data/6379/redis.pid ログレベル通知 ログファイル "/data/6379/redis.log" ディレクトリ /data/6379 保護モード はい dbファイル名 dbmp.rdb 900 1 を節約 300 10 を節約 60 10000を節約 redis-6380.conf ポート 6380 悪魔化する はい pidファイル /data/6380/redis.pid ログレベル通知 ログファイル "/data/6380/redis.log" ディレクトリ /data/6380 保護モード はい dbファイル名 dbmp.rdb 900 1 を節約 300 10 を節約 60 10000を節約 スレーブ 127.0.0.1 6379 redis-6381.conf ポート 6381 悪魔化する はい pidファイル /data/6381/redis.pid ログレベル通知 ログファイル "/data/6381/redis.log" ディレクトリ /data/6381 保護モード はい dbファイル名 dbmp.rdb 900 1 を節約 300 10 を節約 60 10000を節約 スレーブ 127.0.0.1 6379 2. 3つのデータベースインスタンスを起動し、マスタースレーブ同期IDを確認する redis-cli -p 6379 レプリケーション情報 redis-cli -p 6380 レプリケーション情報 redis-cli -p 6381 レプリケーション情報 3: 以下の情報を確認し、同期されているか確認してください 4. メインデータベースがクラッシュしたらどうなりますか? ? 解決: 1. マスターとスレーブのIDを手動で切り替え、新しいマスターデータベースを選択します。
2. Sentinelを使用して新しい所有者を自動的に選出する 2|1レディスセンチネル: センチネル機能: Sentinel は、マスター スレーブ アーキテクチャが正常かどうかを検出します。マスター データベースに障害が発生した場合、Sentinel は redis.conf を自動的に変更して、slaveof ディレクティブを追加/削除します。 Redis Sentinel のインストール構成: 1. マスター1つとスレーブ2つの計3つのRedisインスタンスを準備する 詳細については、上記のRedisマスタースレーブ構成を参照してください。 2. 3つのデータベースインスタンスを準備して起動する redis サーバー redis-6379.conf redis サーバー redis-6380.conf redis サーバー redis-6381.conf 3. 3つのセンチネルを準備し、マスタースレーブアーキテクチャの監視を開始する 3つの設定ファイル、センチネルファイルを準備する redis-26379.conf ポート 26379 ディレクトリ /var/redis/data/ ログファイル "26379.log" センチネルモニター sbmaster 127.0.0.1 6379 2 Sentinel のミリ秒後のダウン QSmaster 30000 センチネル パラレル同期 SBマスター 1 センチネルフェイルオーバータイムアウト SBマスター 180000 悪魔化する はい redis-26380.conf ポート 26380 ディレクトリ /var/redis/data/ ログファイル "26380.log" センチネルモニター sbmaster 127.0.0.1 6379 2 Sentinel のミリ秒後のダウン QSmaster 30000 センチネル パラレル同期 SBマスター 1 センチネルフェイルオーバータイムアウト SBマスター 180000 悪魔化する はい redis-26381.conf ポート 26381 ディレクトリ /var/redis/data/ ログファイル "26381.log" センチネルモニター sbmaster 127.0.0.1 6379 2 センチネル ダウン後 ミリ秒 sbmaster 30000 センチネル パラレル同期 SBマスター 1 センチネルフェイルオーバータイムアウト SBマスター 180000 悪魔化する はい 4. 3つのセンチネルインスタンスを起動する redis-sentinel redis-26380.conf redis-sentinel redis-26379.conf redis-sentinel redis-26381.conf センチネルの状態が正常かどうかを確認します 以下の情報が見つかり、それが以下の内容と一致している場合にのみ正常です。
# センチネル センチネルマスターズ:1 センチネル_傾斜:0 センチネル実行スクリプト:0 センチネルスクリプトキューの長さ:0 センチネルシミュレート失敗フラグ:0 マスター0:名前=sbmaster、ステータス=ok、アドレス=127.0.0.1:6380、スレーブ=2、センチネル=3 5. Sentinelのマスターとスレーブを自動的に切り替える 1. 6379 個の Redis データベースを削除する 2. 6380 と 6381 の ID 情報を確認し、マスターとスレーブの間で自動的に切り替わるかどうかを確認します (切り替えには 30 秒かかります)。 3. 6379 によってハングアップしたデータベースを手動で起動し、Sentinel によって情報のマスター スレーブ クラスターに追加されるかどうかを確認します。 知らせ! !失敗した場合は、すべての Sentinel 構成ファイルを削除して最初からやり直す必要があります。注意! !失敗した場合は、すべての Sentinel 構成ファイルを削除して最初からやり直す必要があります。注意! !失敗した場合は、すべての Sentinel 構成ファイルを削除して最初からやり直す必要があります。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
>>: Vueフレームワークで習得しなければならない重要な知識を学びます
目次必要:機能ポイントレンダリング実装のアイデア具体的なコード(react\taro3.0)特定のコ...
目次1. 範囲2. スコープチェーン3. 語彙の範囲5. 閉鎖の適用6. クロージャの欠陥7. 閉会...
最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...
序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...
ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...
実際、この効果を実現するのは非常に簡単で、この効果は特殊効果と呼ぶことすらできません。次のコードを ...
次のような要件があります: インポート ボタン。ボタンをクリックして Excel テーブルをインポー...
1. コマンドの紹介stat コマンドは、ファイルまたはファイル システムに関する詳細情報を表示する...
この関数の効果はvue的provide/injectに似ています。 contextを通じて反応できる...
目次Tomcat クラスローダー階層WebAppクラスローダー共有クラスローダーカタリナクラスローダ...
1. Apacheサーバーのインストールと設定yum インストール httpd -y systemc...
色のコントラストと調和対照的な状況では、色の相互作用は単一の色によって与えられる感覚とは異なります。...
序文Linux 上で jar パッケージを実行する方法は誰もが知っています。なぜ別々に話したいのでし...
目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...
目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...