このページでは、Memorystore for Redis Cluster インスタンスに接続する方法について説明します。
クライアントのサポート
Memorystore for Redis Cluster は独自のクライアント ライブラリを備えていませんが、Redis プロトコルをサポートする既存のサードパーティ クライアント ライブラリをサポートします。 Redis がサポートするクライアント ライブラリの詳細については、サポートされている接続クライアントをご覧ください。
redis-py クライアントのベスト プラクティス
redis-py Python クライアントを使用して Memorystore for Redis Cluster インスタンスに接続するには、redis-py を宣言するときに skip_full_coverage_check=True を追加する必要があります。
from rediscluster import RedisCluster
endpoints = [{"host": "IPADDRESS", "port": "6379"}]
rdb = RedisCluster(
startup_nodes=endpoints,
skip_full_coverage_check=True, # Required for Memorystore
decode_responses = True)
print(rdb.set('PYTHON', 'CLUSTER'))
print(rdb.get('PYTHON'))
print(rdb.unlink('PYTHON'))
ファイアウォールのポートを許可リストに登録する
ファイアウォールで正しいポートを許可リストに登録しないと、インスタンスで接続エラーが発生する可能性があります。ポートの許可リストへの登録の詳細については、 問題のトラブルシューティングをご覧ください。
リージョン間アクセス
Memorystore インスタンスがあるリージョンとは異なるリージョンにあるクライアントから、Memorystore for Redis Cluster インスタンスにアクセスできます。
クラスタの検出エンドポイントを表示する
各クラスタには、検出エンドポイントがあり、クライアントが接続します。 このエンドポイントは、IP アドレスとポート番号の組み合わせです。
Memorystore for Redis Cluster のクラスタの検出エンドポイントを表示するには、 コンソールまたは gcloud CLI を使用します。 Google Cloud
コンソール
コンソールで [Memorystore for Redis Cluster] ページに移動します。 Google Cloud
クラスタ ID をクリックします。
[このインスタンスに接続] セクションで、[検出エンドポイント] の横にある IP アドレスとポート番号をメモします。これら 2 つの値を組み合わせて使用すると、クラスタの検出エンドポイントになります。
gcloud
クラスタの検出エンドポイントを表示するには、インスタンスの詳細情報を表示するセクションの説明に従って、describe
gcloud CLI を実行します。
出力例を以下に示します。
authorizationMode: AUTH_MODE_DISABLED
createTime: '2023-08-04T17:49:07.988918793Z'
discoveryEndpoints:
- address: 10.142.0.13
port: 6379
pscConfig:
- network: projects/my-project-364018/global/networks/default
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
pscConnections:
- address: 10.142.0.13
forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/forwardingRules/sca-auto-fr-5bc46f69-ec80-4c5a-8971-ce267a4d8ddd
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
pscConnectionId: '25734306048376845'
- address: 10.142.0.10
forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/.
forwardingRules/sca-auto-fr-817b64c5-85ac-48d0-82e3-c6fa99b4e67d
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
pscConnectionId: '25734306048376842'
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
tier: PERFORMANCE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: cddda5de-d91f-449b-8755-3a665430271a
discovery_endpoints: セクションに記載されているエンドポイントのアドレスとポート番号をメモします。これら 2 つの値を組み合わせて使用すると、クラスタの検出エンドポイントになります。
redis-cli を使用して Compute Engine VM から接続する
Memorystore インスタンスの承認済みネットワークを使用する任意の Compute Engine VM から Memorystore for Redis Cluster インスタンスに接続できます。
インスタンスに接続する手順は次のとおりです。
Memorystore for Redis Cluster インスタンスの 承認済みネットワークを使用する Linux Compute Engine VM がまだない場合は、作成して Linux VM の作成に関するクイックスタートの手順に沿って接続します。
Linux に Redis をインストールするの手順に沿って、
redis-cliバージョン 6.0 以降を Compute Engine VM にインストールします。クラスタの検出エンドポイントを表示して メモします。
次のコマンドを実行して、インスタンスの検出エンドポイントに接続します。
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
ここで
- DISCOVERY_ENDPOINT_ADDRESS と PORT_NUMBER は、前のステップでメモした値です。
CLUSTER SHARDSコマンドを実行して、クラスタ トポロジを表示します。ノードの IP アドレスとポート番号のいずれかをメモします。次のコマンドを実行して、目的のノードに接続します。
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
以下を置き換えます。
- NODE_IP_ADDRESS は、前のステップで確認したノードの IP アドレスです。
- NODE_PORT は、前の ステップで確認したノードのポート番号です。
ノードに接続したら、Redis コマンドを入力します。
次のように入力します:
PING
結果:
PONG
入力
SET HELLO WORLD
結果:
OK
次のように入力します。
GET HELLO
結果:
"WORLD"
Redis ノードへの接続をテストしたら、Redis インスタンスへの接続に使用した Compute Engine VM を削除することを検討してください。そうすることで、Cloud 請求先アカウントへの課金を回避できます。
転送中の暗号化が有効になっているインスタンスに接続する
このセクションでは、転送中の暗号化が有効になっている Memorystore for Redis Cluster インスタンスに接続する方法の例を示します。
前のステップの Redis インスタンスと同じ 承認済みネットワークを使用する Compute Engine VM がまだない場合は、これを作成してから、Linux VM を使用したクイックスタートに従って接続します。
- Linux に Redis をインストールするの手順に沿って、
redis-cliバージョン 6.0 以降を Compute Engine VM にインストールします。
- Linux に Redis をインストールするの手順に沿って、
クラスタで使用している認証局(CA)モードを確認します。
クラスタの検出エンドポイントを表示して メモします。
次のコマンドを実行して、インスタンスの検出エンドポイントに接続します。
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem
ここで
- DISCOVERY_ENDPOINT_ADDRESS と PORT_NUMBER は、前のステップでメモした値です。
CLUSTER SHARDSコマンドを実行して、クラスタ トポロジを表示します。ノードの IP アドレスとポート番号のいずれかをメモします。次のコマンドを実行して、目的のノードに接続します。
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls --cacert /tmp/server_ca.pem
以下を置き換えます。
- NODE_IP_ADDRESS は、前のステップで確認したノードの IP アドレスです。
- NODE_PORT は、前の ステップで確認したノードのポート番号です。
ノードに接続したら、Redis コマンドを入力します。
次のように入力します:
PING
結果:
PONG