ホームページ  >  記事  >  データベース  >  いくつかの便利な Redis 運用およびメンテナンス ツールを共有する

いくつかの便利な Redis 運用およびメンテナンス ツールを共有する

青灯夜游
青灯夜游転載
2021-12-07 09:39:462895ブラウズ

この記事では、Redis の稼働状況の監視、データ移行、クラスター管理の方法を確認するための便利な Redis 運用および保守ツールをいくつか紹介します。

いくつかの便利な Redis 運用およびメンテナンス ツールを共有する

Redis を適用すると、Redis の実行状況監視、データ移行、マスター/スレーブ クラスターやスライス クラスターのデプロイと運用などの運用保守作業が発生することがよくあります。次に、これら 3 つの側面からいくつかのツールを紹介します。まず、Redis のリアルタイムの実行状態を監視するツールについて学習しましょう。これらのツールはすべて、Redis が提供する監視コマンド INFO を使用します。 [関連する推奨事項: Redis ビデオ チュートリアル ]

最も基本的な監視コマンド: INFO コマンド

Redis 自体によって提供される INFO コマンドは、実行中のリッチ インスタンスの監視を返します。情報、このコマンドは Redis 監視ツール の基礎です。

INFO コマンドを使用する場合、パラメータ セクションを取得できます。このパラメータにはいくつかの値があります。これに応じて、INFO コマンドもさまざまな種類の監視情報を返します。 INFO コマンドの戻り情報を大きく 5 つのカテゴリに分けましたが、次の表に示すように、カテゴリによっては監視内容が異なります。 INFO コマンドによって返される情報は非常に便利です。 INFO コマンドのすべてのパラメータによって返される結果の詳細な意味を知りたい場合は、Redis

公式 Web サイト

の紹介を確認してください。ここでは、運用およびメンテナンス中に注目する必要があるいくつかのパラメータと、それらの重要な戻り結果について説明します。 いくつかの便利な Redis 運用およびメンテナンス ツールを共有する

まず第一に、

単一インスタンスを実行しているかクラスターを実行しているかに関係なく、stat、commandstat、cpu、memory という 4 つのパラメーターの戻り結果に注目することをお勧めします。コマンドの実行状況(コマンドの実行回数や実行時間、コマンドが使用しているCPUリソースなど)、メモリリソースの使用状況(メモリ使用量、メモリ断片化率など)、CPUリソース使用量など、インスタンスの実行状況やリソースの消費状況を判断するのに役立ちます。

さらに、RDB または AOF 機能を有効にする場合は、永続化パラメーターの戻り結果に注目する必要があります。これにより、RDB または AOF の実行ステータスを確認できます。

マスター/スレーブ クラスターを使用している場合は、マスター/スレーブ同期のリアルタイム ステータスを含むレプリケーション パラメーターの戻り結果に注目する必要があります。

ただし、INFO コマンドは監視結果をテキスト形式で提供するだけで、視覚化されません。そのため、実際のアプリケーションでは、サードパーティのオープン ソース ツールを使用して、INFO コマンドによって返された結果を視覚化することもできます。次にプラグインを通じてRedisの統計結果を可視化できるPrometheusについてお話します。

Prometheus の Redis エクスポーター監視

Prometheus

は、オープンソースのシステム監視およびアラーム フレームワークです。その中心的な機能は、監視対象システムから監視データを取得し、それを

Grafana

ツールと組み合わせて視覚的に表示することです。さらに、監視データを時系列データベースに保存して、運用および保守担当者による履歴のクエリを容易にすることができます。同時に、Prometheus はシステムの監視指標が事前に設定されたしきい値を超えているかどうかを検出し、しきい値を超えるとアラームをトリガーします。

これらの機能は、システムの日常の運用および保守管理にとって非常に重要です。 Prometheus は、これらの機能を使用するためのツール フレームワークを実装しています。監視対象システムから監視データを取得できれば、Prometheusを利用して運用・保守監視を実現できます。 Prometheus は、システムを監視するためのプラグイン機能を提供します。プラグイン エクスポーターと呼ばれます。各エクスポーターは、実際には監視データを収集するコンポーネントです。エクスポータが収集するデータ形式は Prometheus の要件を満たしており、Prometheus がデータを取得した後、表示および保存することができます。

Redis-exporter

は Redis を監視するために使用され、INFO コマンドによって監視された実行ステータスとさまざまな統計情報を Prometheus に提供し、視覚的な表示とアラーム設定を提供します。現在、Redis-exporter は Redis バージョン 2.0 から 6.0 までをサポートしており、幅広いアプリケーションを備えています。

Redis インスタンスの実行ステータスを取得することに加えて、Redis-exporter はキーと値のペアのサイズとコレクション型データの要素数も監視できます。 Redis-exporter を実行するときのキーのコマンド ライン。実装するオプション。

さらに、Lua スクリプトを開発して、必要な監視データの収集をカスタマイズできます。次に、script コマンド ライン オプションを使用して、Redis-exporter にこの特定のスクリプトを実行させ、ビジネス レイヤーの多様な監視ニーズを満たすことができます。

最後に、さらに 2 つのガジェット、redis-statRedis Live を共有したいと思います。 Redis-exporter と比較すると、これら 2 つは軽量な監視ツールです。これらはそれぞれ Ruby と Python で開発されており、INFO コマンドによって提供されるインスタンスの実行ステータス情報も視覚的に表示します。これら 2 つのツールは現在ほとんど更新されていませんが、独自の Redis 監視ツールを開発したい場合には良い参考になります。

Redis の実行ステータスの監視に加えて、もう 1 つの一般的な運用および保守タスクはデータ移行です。次に、データ移行ツールについて学びましょう。

データ移行ツール Redis-shake

異なるインスタンス間でデータを移行する必要がある場合があります。現在、より一般的に使用されているデータ移行ツールの 1 つは Redis-shake です。これは、Alibaba Cloud Redis チームと MongoDB チームによって Redis データ同期のために開発されたツールです。

Redis-shake の基本的な動作原理は、まず Redis インスタンスをシミュレートする Redis-shake プロセスを開始することです。次に、Redis-shake プロセスとデータの移行元のソース インスタンスが完全なデータ同期を実行します。

このプロセスは、Redis マスター/スレーブ インスタンスの完全同期に似ています。

ソース インスタンスはメイン データベースに相当し、Redis-shake はスレーブ データベースに相当します。ソース インスタンスはまず RDB ファイルを Redis-shake に転送し、Redis-shake は RDB ファイルを宛先インスタンス。次に、ソース インスタンスは増分コマンドを Redis-shake に送信し、Redis-shake はこれらの増分コマンドを宛先インスタンスに同期する役割を果たします。

次の図は、Redis-shake のデータ移行プロセスを示しています。

いくつかの便利な Redis 運用およびメンテナンス ツールを共有する

Redis-shake の大きな利点の 1 つは、次のサポートをサポートしていることです。複数のタイプの移行。

まず、単一インスタンス間のデータ移行とクラスター間のデータ移行をサポートします

2 番目に 、一部の Redis スライシング クラスター (Codis など) はプロキシを使用してリクエスト操作を受信します。また、Redis-shake はプロキシを使用したデータ移行もサポートしています。

さらに、Redis-shakeはAlibaba Cloudチームによって開発されているため、オープンソースのRedisバージョンのサポートに加えて、Redis-shakeはクラウド上のRedisインスタンスとクラウド上のRedisもサポートします。インスタンスを移行することは、Redis サービスをクラウドに移行するという目標を達成するのに役立ちます。

データ移行後、通常、移行元インスタンスと移行先インスタンスのデータに一貫性があるかどうかを比較する必要があります。矛盾したデータがある場合は、それらを見つけて宛先インスタンスから削除するか、矛盾したデータを再度移行する必要があります。

ここでは、Alibaba Cloud チームが開発した別のデータ整合性比較ツール Redis-full-check を紹介します。

Redis-full-check の動作原理は非常にシンプルで、ソース インスタンスと宛先インスタンスのデータを完全に比較してデータ検証を完了することです。ただし、データ検証の比較オーバーヘッドを軽減するために、Redis-full-check は複数ラウンドの比較方法を使用します。

検証の最初のラウンドでは、Redis-full-check はソース インスタンス上のすべてのキーを検索し、比較のためにソース インスタンスと宛先インスタンスから対応する値を見つけます。最初の比較後、redis-full-check はソース インスタンスと矛盾する宛先インスタンスのデータを sqlite データベースに記録します。

検証の 2 ラウンド目以降、Redis-full-check は、前のラウンドの終了後にデータベースに記録された一貫性のないデータのみを比較します。

インスタンスの通常のリクエスト処理への影響を避けるため、Redis-full-check は比較の各ラウンド後に一定期間一時停止します。 Redis-shake の増分同期が進むにつれて、ソース インスタンスと宛先インスタンスの不一致データは徐々に減少するため、何度も検証や比較を行う必要はありません。

比較のラウンド数を自分で設定できます。具体的な方法は、redis-full-check コマンドの実行時に比較するラウンド数にパラメーター Comparetimes の値を設定することです。

すべての比較ラウンドが完了すると、データベースに記録されたデータが、ソース インスタンスと宛先インスタンスの間の最終的な差分の結果になります。

ここで注意すべき点があり、Redis-full-check には 3 つの比較モードがあり、comparemode パラメーターで設定できます。 Comparemode パラメータには 3 つの値があり、次の意味を持ちます:

  • KeyOutline、キーの値が等しいかどうかのみを比較します;
  • ValueOutline、値の長さが等しいかどうかのみを比較します値が等しい;
  • FullValue、キー値、値の長さ、および値の値を比較して、それらが等しいかどうかを確認します。

Redis-full-check を適用すると、データ整合性のビジネス要件に応じて、対応する比較モードを選択できます。一貫性の要件が高い場合は、comparemode パラメータを FullValue に設定します。

さて、最後にRedisクラスターの運用保守管理ツールであるCacheCloudを紹介します。

クラスター管理ツール CacheCloud

CacheCloud は Sohu が開発した Redis 運用保守管理用のクラウド プラットフォームであり、 マスター/スレーブ クラスター、センチネル クラスター、Redis クラスターを実装しています。自動展開と管理、ユーザーはプラットフォームの管理インターフェイスで直接操作できます。

一般的なクラスターの運用および保守要件について、CacheCloud は 5 つの運用および保守操作を提供します。

  • オフライン インスタンス: インスタンスおよびインスタンス関連の監視タスクを閉じます。
  • オンライン インスタンス: オフライン インスタンスを再起動して監視します。
  • スレーブ ノードの追加: マスター/スレーブ クラスター内のマスター ノードにスレーブ ノードを追加します。
  • フェイルオーバー: Redis Cluster マスター ノードとスレーブ ノードのフェイルオーバーを手動で完了します。
  • 構成管理: ユーザーが構成変更の作業指示書を送信すると、管理者はそれを確認して構成変更を完了します。

CacheCloud は、運用保守管理プラットフォームとして、運用保守業務だけでなく、豊富な監視情報も提供します。

CacheCloud は、INFO コマンドによって提供されるインスタンスのリアルタイムの実行ステータス情報を収集して視覚的に表示するだけでなく、メモリ使用量、クライアント接続数などのインスタンスの実行ステータス情報も保存します。 、およびキーと値のペアのデータ量。これにより、Redisの運用に問題が発生した場合、運用保守担当者は保存されている履歴を照会し、その時点の稼働状況情報に基づいて分析を行うことができます。

Redis インスタンス管理に関連するタスクを一元的にホストする統合プラットフォームが必要な場合、CacheCloud は優れたツールです。

概要

このレッスンでは、いくつかの Redis 運用およびメンテナンス ツールを紹介しました。

Redis の INFO コマンドについて初めて知りましたが、このコマンドは監視ツールの基本であり、監視ツールは INFO コマンドで得られた情報をもとに二次的な処理を行います。また、Redis の実行状況をリアルタイムで監視するための 3 つの運用保守ツール、Redis-exporter、redis-stat、Redis Live についても学習しました。

データ移行に関しては、Redis-shake ツールを使用するか、RDB ファイルまたは AOF ファイルを介して移行できます。

Redis を運用および保守する場合、今述べた多くのオープンソース ツールはすでに多くのニーズを満たすことができます。ただし、業種ごとにRedisの運用・保守要件が異なる場合があり、既製のオープンソースツールをそのまま利用するだけではすべてのニーズに対応できない場合がありますので、その場合は二次開発や自社調査を行うことをお勧めします。オープンソース ツールに基づいているため、ビジネス用途のニーズをより適切に満たすことができます。

プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !

以上がいくつかの便利な Redis 運用およびメンテナンス ツールを共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。