Redisデータベースへの接続方法
はじめに
Redisはオープンソースのインメモリのキーバリューデータストアです。Redisをローカルにインストールした場合やリモートインスタンスで作業している場合でも、ほとんどの操作を行うためにはそれに接続する必要があります。このチュートリアルでは、コマンドラインからRedisに接続する方法、接続の認証とテスト方法、またRedis接続を終了する方法を学びます。
このガイドの使い方について説明します。
このガイドは、自己完結型の例を用いたチートシートとして書かれています。タスクの完了に関連するセクションにスキップすることをおすすめします。
このガイドに示されたコマンドは、Redisバージョン6.0.16を実行しているUbuntu 22.04サーバーでテストされました。同様の環境をセットアップするには、Ubuntu 22.04にRedisをインストールしてセキュリティを確保する方法のガイドのステップ1に従うことができます。これらのコマンドの動作をredis-cli(Redisのコマンドラインインターフェース)を使用して実行することで、これらのコマンドの動作を示します。ただし、異なるRedisインターフェース(例:Redli)を使用している場合、一部のコマンドの出力は異なる場合があります。
これらのコマンドをテストするために、管理されたRedisデータベースインスタンスを用意することもできますが、データベースプロバイダーが許可する制御レベルによっては、このガイドで説明されている通りには一部のコマンドが機能しない場合があります。Silicon Cloudの管理されたデータベースを用意するには、弊社のManaged Databases製品のドキュメントに従ってください。その後、Managed DatabaseにTLS経由で接続するためには、Redliをインストールするか、TLSトンネルを設定する必要があります。
ローカルでRedisに接続する
もしローカルにredis-serverがインストールされている場合、redis-cliコマンドを使用してRedisインスタンスに接続することができます。
- redis-cli
これにより、redis-cliのインタラクティブモードに入ることができます。そのモードでは、Redisの組み込みコマンドを実行し、返答を受け取ることができます。
インタラクティブモードでは、接続に応じてコマンドラインプロンプトが変わります。この例や本ガイドの他の例では、プロンプトはRedisのデフォルトポート6379を介してローカルホストの127.0.0.1にホストされたRedisインスタンスへの接続を示しています。
Redisコマンドをインタラクティブモードで実行する代わりに、以下のようにredis-cliコマンドの引数として実行する方法があります。
- redis-cli redis_command
リモートでRedisに接続する
遠隔のRedisデータストアに接続したい場合、それぞれ-hフラグと-pフラグを使ってホストとポート番号を指定することができます。また、Redisデータベースにパスワードが必要な場合は、-aフラグに続けてパスワードを入力して認証することができます。
- redis-cli -h host -p port_number -a password
Redisのパスワードを設定した場合、クライアントはredis-cliコマンドで-aフラグを含めずに接続することができます。ただし、認証が完了するまで、データの追加、変更、またはクエリはできません。接続後に認証するには、パスワードに続いてauthコマンドを使用してください。
- auth password
パスワードが正当であれば、認証に渡されたコマンドは「OK」と返します。それ以外の場合は、エラーを返します。
もし管理されたRedisデータベースを使用している場合、クラウドプロバイダからはredis://またはrediss://で始まるURIが提供されることがあります。これを使用してデータストアにアクセスすることができます。もし接続文字列がredis://で始まる場合は、それをredis-cliの引数として含めることで接続することができます。
Note
Redliを使用してデータベースに接続するためには、以下の構文を使用します。なお、この例では–tlsオプションが含まれており、接続をTLSで行うことを指定しています。また、-uフラグも含まれており、次の引数がURI接続であることを宣言しています。
- redli –tls -u rediss://connection_URI
利用できないインスタンスに接続しようとすると、redis-cliは切断モードになり、プロンプトは次のように反映されます。
Redisが切断された状態でコマンドを実行するたびに、再接続を試みます。
接続のテスト
ピンコマンドは、データベースへの接続が生きているかをテストするのに役立ちます。なお、これはRedis固有のコマンドであり、pingのネットワーキングユーティリティとは異なります。ただし、2つは2台のマシン間の接続をチェックするという類似した機能を共有しています。
接続が確立されていて、引数が含まれていない場合、pingコマンドはPONGを返します。
- ping
PONG
もしpingコマンドに引数を提供すると、接続が成功した場合はPONGではなく、引数が返されます。
- ping “hello Redis!”
“hello Redis!”
もしもpingや他のコマンドをネットワーク接続が切断された状態で実行すると、以下のような結果が表示されます。
- ping
Could not connect to Redis at host:port: Connection refused
注意してください、Redis内部でも遅延を測定するためにpingが使用されていることに注意してください。
Redisから切断する
Redisインスタンスから切断するには、quitコマンドを使用してください。
- quit
終了を実行すると、接続も終了します。
- exit
「終了」と「退出」の両方は接続を閉じますが、未解決の返信がクライアントに書き込まれるまで、どちらの場合も接続が閉じられます。
結論
このガイドでは、Redisサーバーとの接続を確立、テスト、終了するために使用されるいくつかのコマンドについて説明しています。もしこのガイドで学びたい関連コマンド、引数、手順が他にある場合は、コメントで質問や提案をしてください。
Redisコマンドに関する詳細情報については、「Redisデータベースの管理方法」のチュートリアルシリーズをご覧ください。