IBM Cloud Docs
コマンド・ライン・インターフェース (CLI) を使用した接続

コマンド・ライン・インターフェース (CLI) を使用した接続

コマンド・ライン・インターフェース (CLI) から直接 Redis データベースにアクセスします。 CLIは、データベース内で作成されるデータ構造を直接操作し、監視することができる。 これは、キースペースとパフォーマンスの管理とモニターや、スクリプトのインストールと変更、といった管理アクティビティーにも役立ちます。

Redis 6で導入されたユーザー管理機能に対応して、 redli クライアントを更新する必要があります。 クライアントを更新せずに接続しようとすると、次のようなエラーが表示されます: (error) WRONGPASS invalid username-password pair.

接続ストリング

接続文字列はデプロイの「_概要_ページの「_エンドポイント_パネルに表示され、「Cloud DatabasesCLIプラグイン、 「Cloud DatabasesAPI 取得できる。

クライアントが配置に接続するために必要な情報は、[*サービス資格情報]*ページで作成した資格情報の「CLI」セクションにあります。 参照用に、接続文字列の構成要素を次の表に示します。

フィールド名 索引 説明
Bin 接続を作成するための推奨バイナリー。この場合は redli になります。
Composed デプロイメントへの接続を確立するための構成済みのコマンド。 このコマンドは、Bin 実行可能プログラムと Environment 変数設定を組み合わせ、コマンド・ライン・パラメーターとして Arguments を使用します。
Environment 環境変数として設定したキー/値のリスト。
Arguments 0... Bin フィールドに示されているコマンドに引数として渡される情報
Certificate Base64 アプリケーションが適切なサーバーに接続することを確認するために使用する自己署名証明書。 base64 でエンコードされています。
Certificate 名前 自己署名証明書に割り当てられた名前。
Type この接続情報を使用するパッケージのタイプ。この場合は cli です。
{: caption=redis``cli 接続情報" caption-side="top"}
  • 0... は、1 つの配列にこれらのエントリーが 1 つ以上ある可能性があることを示しています。

redli のインストール

redli は、オープン・ソースの Redis コマンド・ライン・クライアントです。 スタンドアロンであり、redis-cli コマンド・ライン引数に似ていて、TLS/SSL Redis 接続のサポートを追加します。 これは URI 内の rediss: プロトコルを認識し、URI 以外の接続のための --tls フラグをサポートします。 これは TLS/SSL で保護された Redis にトンネルなしで接続できます。 リリース・ページからダウンロードしてインストールします。

redli による接続

ibmcloud cdb deployment-connections コマンドは、クライアント接続の確立に関係するあらゆる処理を行います。 例えば、「NewRedis」という名前のデプロイメントに接続するには、以下のコマンドを使用します。

ibmcloud cdb deployment-connections NewRedis --start

または

ibmcloud cdb cxn NewRedis -s

コマンドは「admin パスワードの入力を促し、「redli コマンドラインクライアントを実行してデータベースに接続する。

Cloud Databases プラグインをインストールしていない場合は、redli コマンドを使用して Redis データベースに接続します。 デプロイメントから自己署名証明書をダウンロードして保存します。 Then, use redli by giving it the "composed" connection string and the path to the self-signed certificate.

redli --uri rediss://admin:$PASSWORD@e6b2c3f8-54a6-439e-8d8a-aa6c4a78df49.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32371/0 --certfile /path/to/redis-cert.pem

redli でサポートされている接続オプションとパラメーターはこの他にもあります。 詳細については、'redli'GitHubレポ のドキュメントを参照のこと。

redis-cli のインストール

redis-cli は、Redis の公式にサポートされているコマンド・ライン・インターフェースです。 残念ながら、これは TLS 接続をサポートしていません。

redis-cli 使用する場合、追加の設定手順があります。 このインターフェースは Redis パッケージの一部として提供されているため、これを使用するには、ローカル環境に Redis をインストールする必要があります。 macOS, brewをインストールし、「brew install redis 起動する。 Linuxでは、ディストリビューションのパッケージ・マネージャーで最新のRedisパッケージを参照するか、その気になれば ソースをダウンロードして自分でビルドする。

redis-cli による接続

redis-cli は、TLS が有効になっている接続をサポートしていません。 If you want to use the redis-cli with an encrypted connection, set up a utility like stunnel, which wraps the redis-cli connection in TLS encryption.

stunnel の設定

  1. stunnel をインストールします。 Linuxの場合はパッケージマネージャーを、Macの場合はHomebrewを使うか、あなたのプラットフォームに適したパッケージを ダウンロードしてください。

  2. 接続情報を取得します。 接続をセットアップするために、 stunnel は Redis デプロイメントのホスト、ポート、証明書を必要とします。 ホストとポートは両方とも CLI の「composed」の接続ストリングから取得できます。 また、これらの文字列は、外部アプリケーションやドライバーを接続するために提供される 接続文字列ブレークダウン で解析されます。

    証明書は、サービス・クレデンシャル接続情報のBase64フィールドにある。 証明書をコピーし、デコードして、ファイルに保存します。

  3. 構成情報を stunnel.conf ファイルに追加します。 構成には、以下の情報が含まれています。

    • サービスの名前。 ([redis-cli])
    • この stunnel が TLS クライアントであることを示す設定。(client=yes)
    • 接続を受け入れ、また接続を行うための IP アドレスとポート。(accept=127.0.0.1:6830)
    • 接続先のホスト名とポート。(connect=portal972-7.bmix-lon-yp-38898e17-ff6f-4340-9da8-2ba24c41e6d8.composeci-us-ibm-com.composedb.com:24370`)
    • 証明書へのパス。
    [redis-cli]
    client=yes  
    accept=127.0.0.1:6830  
    connect=sl-us-south-1-portal.7.dblayer.com:23870
    verify=2  
    checkHost=sl-us-south-1-portal.7.dblayer.com
    CAfile=/path/to/redis/cert.crt
    
  4. stunnel を実行します。

    コマンド・ラインで stunnel コマンドを入力します。 すぐにバックグラウンドで実行されます。

  5. 新しい端末ウィンドウで、ローカル・ホストとポートを指定した redis-cli を実行し、デプロイメントの資格情報で認証します。

    redis-cli -p 6830 -a <PASSWORD>
    

自己署名証明書の使用

  1. _Endpoints_パネルまたはサービス・クレデンシャル接続情報のBase64フィールドから証明書情報をコピーする。
  2. 必要に応じて、Base64 ストリングをテキストにデコードします。
  3. 証明書をファイルに保存します (提供される名前、または独自のファイル名を使用できます)。
  4. ドライバーまたはクライアントに証明書へのパスを提供します。

自己署名証明書の CLI プラグイン・サポート

CLIプラグインを使用して、デプロイメント用にデコードされた証明書を次のようなコマンドで表示できます:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

このコマンドはBase64をテキストにデコードする。 このコマンドの出力をファイルにコピーして保存し、このファイルのパスをクライアントに提供します。