検索
ホームページデータベースRedisRedis セントリー モードでの高可用性の分析例

    1. はじめに

    Redis の高可用性には、Sentinel モード クラスターの 2 つのモードがあります。モード、この記事では、1 つのマスター、2 つのスレーブ、3 つのセンチネルセンチネル モードに基づいた Redis 高可用性サービスを構築します。

    1. 目標と利点

    1 つのマスター、2 つのスレーブ、および 3 つのセンチネルRedis サービスは、基本的に中小規模のプロジェクトの高可用性要件を満たすことができます。 Redis インスタンスを監視および管理します。この記事を通じて、次の目標が達成されます。

    • Sentinel モード サービスの計画と構築

    Sentinel モード サービスバージョン サービスは単一マシンと比較され、信頼性が高く、読み取りと書き込みが分離され、データ量が大きくなく、信頼性と安定性が必要なシナリオに適しています。

    • クライアントの統合と読み取り/書き込みの分離

    Spring フレームワークを介してセンチネル モードに接続し、運用を完了します。環境共通の操作。

    2. ポート計画

    ポート計画は、このソリューションを完成させるための最初のステップです。

    Redis セントリー モードでの高可用性の分析例

    2. 単一マシン シミュレーション

    単一マシン シミュレーションとは、物理マシンまたは仮想マシン上で動作をシミュレーションし、元の中間プロセスを復元することです。通常、学習または開発段階で使用されます。

    操作を簡素化するために、Redis サービスは次の規則を設けています: データはディスクに永続化されません。サービス インスタンスはフォアグラウンド プロセスとして実行されます。ノード構成ファイルはデフォルトの構成ファイルをテンプレートとして使用します。パスワードの確認。

    (1) サービス計画

    1. Redis インスタンス

    サービスを初めて開始するとき、どのノードがマスター ノードであるかが明確にわかります。が長時間実行されており、マスター/スレーブの切り替えが発生した場合、どのノードがマスター ノードであるかを表示することはできないため、コマンド ラインを介して間接的にクエリする必要があります。

    #ノードホストポートロール追加の構成node01127.0.0.16380初回起動時のマスター サービスとしてnode02127.0.0.16381初回起動時のスレーブ サービスとして127.0 のレプリカ。 0.1 6380node03127.0.0.16382初回起動時のスレーブ サービスとしてreplicaof 127.0. 0.1 6380
    追加構成とは、Redis サービス インスタンスが初めて起動されるときのノード構成ファイル内の新しい構成を指します。

    2. Sentinel サービス
    Sentinel サービス ノード間にマスターとスレーブの区別はなく、すべてのノードは平等な立場にあります。メイン サービスで例外が発生すると、センチネル サービスは投票戦略をトリガーし、Redis インスタンスのスレーブ ノードから候補を新しいメイン サービスとして選択します。

    #ノード node01node02node03

    (2) サービス設定

    1. Redis インスタンス

    ノードの初期設定ファイルは、デフォルトの設定ファイルをテンプレートとして使用します。

    node01 と node02 が設定ファイルを初期化すると、ノード間のマスター/スレーブ関係が表示され、次の設定が追加されます:

    replicaof 127.0.0.1 6380
    2. Sentinel サービス

    初期設定ノードの設定ファイルは次のとおりです。 デフォルトの設定ファイルはテンプレートです。

    node01、node02、node03 が設定ファイルを初期化した後、次の設定を追加します。

    sentinel monitor mymaster 127.0.0.1 6381 2

    (3) サービス管理

    テストまたは学習する場合は、次の設定を追加することをお勧めします。フォアグラウンド プロセスを使用してサービスを管理すると、単一障害点をシミュレートしたり、ログを表示したり、マスター/スレーブの切り替えを観察したりするのに便利です。

    本番環境では、スーパーバイザーを使用してサービスを管理することをお勧めします。これは、管理が簡単なだけでなく、異常終了後にサービスを自動的に再起動できます。高可用性シナリオでは 3 台の物理マシンが使用されます。

    1. Redis インスタンス
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis80.conf --port 6380 --save '' --daemonize no 
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis81.conf --port 6381 --save '' --daemonize no
    /usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis82.conf --port 6382 --save '' --daemonize no
    2. Sentinel サービス
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel280.conf --port 26380 --daemonize no
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel281.conf --port 26381 --daemonize no
    /usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel282.conf --port 26382 --daemonize no

    3. クライアント統合

    クライアント実装とは、SpringBoot に基づく統合を指します。実装ステップ: まず、基礎としての統合を完了し、次に、運用ニーズに基づいて新しい機能を追加します。

    (1) 基本統合

    基本統合の内容は、Java クライアントを使用して高可用性センチネル モード Redis サービスに接続し、単一ノード障害の通常動作の要件を達成することです。サービス。

    1. グローバル設定ファイル

    グローバル設定ファイルに追加される設定情報は次のとおりです: masterパラメータはセンチネル サービス名で、これがデフォルト値です。nodesパラメータはセンチネル サービス リスト (Redis インスタンス サービス リストではありません); databaseパラメータはデータベースです。

    spring:
      redis:
        database: 0
        sentinel:
          nodes: 192.168.181.171:26380,192.168.181.171:26381,192.168.181.171:26382
          master: mymaster
    2. 統合構成

    は SpringBoot システムに統合されています。中心となるのは、LettuceConnectionFactory 接続ファクトリを作成することです。Redis 接続ファクトリを通じて、スムーズに接続ファクトリを作成できます。スプリング システムの他の部分に継承されます。

    @Configuration
    public class RedisSentinelConfig {
        @Autowired
        private RedisProperties redisProperties;
        
        @Bean
        public RedisConnectionFactory lettuceConnectionFactory() {
            RedisProperties.Sentinel sentinel = redisProperties.getSentinel();
            HashSet<String> nodes = new HashSet<>(sentinel.getNodes());
            String master = sentinel.getMaster();
            RedisSentinelConfiguration config = new RedisSentinelConfiguration(master, nodes);
            config.setDatabase(redisProperties.getDatabase());
            return new LettuceConnectionFactory(config);
        }
    }

    (2) 読み取りと書き込みの分離

    基本的な統合は、高可用性 Redis サービスのプロセスのみを実装します。運用環境では、他の構成を追加する必要があります: カスタム接続の変更データベースのシリアル番号、接続の承認、接続プールの構成、読み取りと書き込みの分離。

    高可用性を前提として、メインライブラリが書き込みリクエストを完了し、スレーブライブラリが読み出しリクエストを完了する(スレーブライブラリは書き込みを許可しない)という、読み出しと書き込みの分離という特徴が生まれます。

    rree
    ホスト ポート 追加構成
    127.0.0.1 26380 センチネル モニター mymaster 127.0.0.1 6380 2
    127.0.0.1 26381 センチネル モニター mymaster 127.0.0.1 6380 2
    127.0.0.1 26382 センチネル モニター mymaster 127.0.0.1 6380 2

    以上がRedis セントリー モードでの高可用性の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
    Redis vsデータベース:パフォーマンスの比較Redis vsデータベース:パフォーマンスの比較May 14, 2025 am 12:11 AM

    PerformStraditionaldatabasesinspeedforread/writeoperationsduetoitsinmemorynature、whieldatitionaldatabasesesexcelincomplearsanddataintegrity.1)Redisidealforreal-timeanalyticsandcaching、offeringphenomenalporfance.2)伝統的なダタベース

    従来のデータベースの代わりにRedisをいつ使用する必要がありますか?従来のデータベースの代わりにRedisをいつ使用する必要がありますか?May 13, 2025 pm 04:01 PM

    useredisinsteadofatraditationaldatabase whenyourapplicationreassandreal-timedataprocessing、suteasforcaching、sessionmanagement、orreal-timeanalytics.redisexcelsin:1)キャッシング、削減loadonprimarydatabases;

    Redis:SQLを超えて-NOSQLの視点Redis:SQLを超えて-NOSQLの視点May 08, 2025 am 12:25 AM

    Redisは、高性能と柔軟性のためにSQLデータベースを超えています。 1)Redisは、メモリストレージを介して非常に速い読み取りおよび書き込み速度を実現します。 2)複雑なデータ処理に適したリストやコレクションなど、さまざまなデータ構造をサポートしています。 3)シングルスレッドモデルは開発を簡素化しますが、高い並行性はボトルネックになる可能性があります。

    Redis:従来のデータベースサーバーとの比較Redis:従来のデータベースサーバーとの比較May 07, 2025 am 12:09 AM

    Redisは、並行性が高く、遅延の低いシナリオの従来のデータベースよりも優れていますが、複雑なクエリやトランザクション処理には適していません。 1.Redisは、メモリストレージ、高速読み取り速度、および高い並行性と低遅延の要件に適しています。 2.従来のデータベースは、ディスクに基づいており、複雑なクエリとトランザクション処理をサポートし、データの一貫性と永続性が強い。 3. Redisは、従来のデータベースのサプリメントまたは代替品として適していますが、特定のビジネスニーズに応じて選択する必要があります。

    Redis:強力なメモリデータストアの紹介Redis:強力なメモリデータストアの紹介May 06, 2025 am 12:08 AM

    redisisahigh-performancein-memorydatastructurturturestorettorethatedcelsinsinsinsversility.1)itsupportsvariousdatastructureslikestrings、lists、andsets.2)redisisaninmorydatabasewithpersistenceoptions、daturing datasafety.3)

    Redisは主にデータベースですか?Redisは主にデータベースですか?May 05, 2025 am 12:07 AM

    Redisは主にデータベースですが、単なるデータベース以上のものです。 1.データベースとして、Redisは持続性をサポートし、高性能のニーズに適しています。 2。キャッシュとして、Redisはアプリケーションの応答速度を改善します。 3。メッセージブローカーとして、Redisはリアルタイム通信に適したPublish-Subscribeモードをサポートしています。

    Redis:データベース、サーバー、または他の何か?Redis:データベース、サーバー、または他の何か?May 04, 2025 am 12:08 AM

    redisisamultifaCetedTooltoToolvesSasadatabase、server、andmore。

    Redis:その目的と主要なアプリケーションを発表しますRedis:その目的と主要なアプリケーションを発表しますMay 03, 2025 am 12:11 AM

    Redisisanopen-Source、In-MemoryDatastructurestoreStoreSadatabase、Cache、AndmessageBroker、ExcellingInspeedandversatility.ItisisWidely-susederCaching、Real-Timeanalytics、Session Management、AndleaderboardsdueTotutsuptorututrututrututruturturturturturturesturesaddataacys

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    SublimeText3 英語版

    SublimeText3 英語版

    推奨: Win バージョン、コードプロンプトをサポート!

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

    Safe Exam Browser

    Safe Exam Browser

    Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール