This page describes how to connect to your Redis instance using Compute Engine and Google Kubernetes Engine. It also provides instructions for testing basic Redis commands with Telnet.
For a list of Google Cloud environments that Memorystore for Redis supports, see Supported environments. Some serverless environments that Memorystore supports require a Serverless VPC Access connector. See Serverless VPC Access connector requirement for more details.
Connecting to a Redis instance from a Compute Engine VM using telnet
You can connect to the Redis instance from any Compute Engine VM instance located within the same project, region and network as the Redis instance.
If you don't already have a Compute Engine VM in the same project, region, and network as your Redis instance, create one and connect to it by following Quickstart using a Linux VM.
Install
telnet
usingapt-get
:sudo apt-get install telnet
From the terminal, telnet to the IP address of the Redis instance, replacing variables with appropriate values.
telnet instance-ip-address 6379
If successful, the command will return this result:
Trying instance-ip-address… Connected to instance-ip-address
In the telnet session, enter some Redis commands:
Enter:
PING
Result:
PONG
Enter
SET HELLO WORLD
Result:
+OK
Enter:
GET HELLO
Result:
$5 WORLD
Connecting to a Redis instance from a Compute Engine VM using redis-cli
You can connect to the Redis instance from any Compute Engine VM instance located within the same project, region, and network as the Redis instance.
If you don't already have a Compute Engine VM in the same project, region, and network as your Redis instance, create one and connect to it by following Quickstart Using a Linux VM.
Install
redis-cli
on the Compute Engine VM by running the following command from the Compute Engine SSH terminal:sudo apt-get install redis-server
Run the following command in the Compute Engine terminal, replacing variables with appropriate values.
redis-cli -h redis-instance-ip-address
You are now connected to your Redis instance using
redis-cli
.Once you are done testing your connection to the Redis instance, you should consider deleting the Compute Engine VM you used to connect to the Redis instance. Doing so helps you avoid incurring charges to your Cloud Billing account.
Connecting to a Redis instance that uses AUTH
This section describes how to connect to a Redis instance that has the AUTH feature enabled.
If you don't already have a Compute Engine VM in the same project, region, and network as your Redis instance, create one and connect to it by following Quickstart Using a Linux VM.
Install
redis-cli
on the Compute Engine VM by running the following command from the Compute Engine SSH terminal:sudo apt-get install redis-server
Get your instance's AUTH string
Run the following command to use
redis-cli
to authenticate and connect to your instance, replacing variables with appropriate values:redis-cli -h instance-ip-address -a auth-string
Or:
redis-cli -h instance-ip-address AUTH auth-string
Run a Redis
SET
andGET
command to verify that you have established an authenticated connection to your instance.Once you are done testing your connection to the Redis instance, you should consider deleting the Compute Engine VM you used to connect to the Redis instance. Doing so helps you avoid incurring charges to your Cloud Billing account.
Securely connecting to a Redis instance using Stunnel and telnet
This section provides an example of how to connect to a Redis instance that has TLS enabled using Stunnel.
If you don't already have a Redis instance that has TLS enabled, create one by following Creating a Redis instance with TLS.
If you don't already have a Compute Engine VM in the same region, project, and network as the Redis instance from the previous step, create one and connect to it by following Quickstart using a Linux VM.
Install the necessary tools for this guide by running the following commands:
sudo apt-get install stunnel4
sudo apt-get install telnet
Configure your Compute Engine VM for use with Stunnel:
Make a new file in which to put your Certificate Authority (CA) by running the following command:
sudo vim /tmp/server_ca.pem
View your Redis instance's Certificate Authority(s) by running the following command in the standard terminal you use to manage Google Cloud resources (not the Compute Engine terminal):
gcloud beta redis instances describe instance-id --region=region
There may be up to three CAs.
Copy all of the visible Certificate Authorities including the
-----BEGIN CERTIFICATE-----
line and the-----END CERTIFICATE-----
lines, and paste and save it theserver_ca.pem
file you previously created.Make a new file in which to put Stunnel configuration information by running the following command:
sudo vim /etc/stunnel/redis-client.conf
Paste the following text in the file, replacing redis-instance-ip with the Redis instance's IP address:
output=/tmp/stunnel.log CAfile=/tmp/server_ca.pem client=yes pid=/var/run/stunnel.pid verifyChain=yes sslVersion=TLSv1.2 [redis] accept=127.0.0.1:6378 connect=redis-instance-ip:6378
Restart Stunnel by running the following commands:
sudo stunnel /etc/stunnel/redis-client.conf
sudo systemctl restart stunnel4
To connect to your Redis instance using Telnet, run the following command:
telnet localhost 6378
In the Telnet session, ping the Redis instance:
Enter:
PING
Result:
PONG
Connecting to a Redis instance from a Google Kubernetes Engine cluster
You can connect to your Redis instances from Google Kubernetes Engine clusters that are in the same region and use the same network as your instance.
Connecting from a pod running a bash shell
- Go to the GKE page in the Cloud Console.
GKE - Click on the GKE cluster you'd like to connect from. If you don't already have a cluster, create one in the same zone and region as your Redis instance with IP aliases enabled. For instructions on how to create a cluster with IP aliases enabled, see the IP aliases documentation.
- Click the Connect button to the right of your cluster's name, then click the Run in Cloud Shell button in the window that appears.
- Configure
kubectl
command line access by running the following command:gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID
CLUSTER_NAME
is the name of your cluster.CLUSTER_ZONE
is the zone your cluster is in. Must also be the zone your Redis instance is in.PROJECT_ID
is the project where your cluster and your Redis instances exist.
kubeconfig generated for CLUSTER_NAME
- If your cluster is version 1.8 or higher and has IP aliases enabled, skip this step. If your cluster is version 1.7 or lower, or your version 1.8 or higher cluster doesn't have IP aliases enabled, follow these workaround steps before trying to connect to your instance: IP aliases documentation. For more information about IP aliases, including how to create a cluster with this setting enabled, see the
- Use the following command to connect to a bash shell:
kubectl run -i --tty busybox --image=busybox -- sh
- Telnet to your Redis instance using the host address and port number:
telnet HOST-IP PORT
- Enter a basic Redis command to verify the connection:
PING +PONG
- To close the telnet connection, press Control+C (or Command+C on Mac). To exit the bash shell in your pod, enter return. If you are done and no longer need to connect to Redis, run the following command from the
/k8s-custom-iptables/
directory:./uninstall.sh
Connecting to a Redis instance from a Google Kubernetes Engine pod
Before you begin, you need a GKE cluster. If you don't already have a cluster, create one in the same zone and region as your Redis instance with IP aliases enabled. For instructions on how to create a cluster with IP aliases enabled, see the IP Aliases documentation.
- From the top-right corner of the console, click the Activate Cloud Shell
button.
- Configure
kubectl
command line access by running the following command:gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID
CLUSTER_NAME
is the name of your cluster.CLUSTER_ZONE
is the zone your cluster is in. Must also be the zone your Redis instance is in.PROJECT_ID
is the project where your cluster and your Redis instances exist.
kubeconfig generated for CLUSTER_NAME
- If your cluster is version 1.8 or higher and has IP aliases enabled, skip this step. If your cluster is version 1.7 or lower, or your version 1.8 or higher cluster doesn't have IP aliases enabled, follow these workaround steps before trying to connect to your instance: IP aliases documentation. For more information about IP aliases, including how to create a cluster with this setting enabled, see the
- Use the following command to start a Redis pod running the
redis-cli
:kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh
- Run a
redis-cli
command, replacingHOST-IP
with the host IP address of your Redis instance:redis-cli -h HOST-IP info
- Optionally, run a Redis benchmark command, again replacing
HOST-IP
with the host IP address of your Redis instance:redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q
- To exit the Redis pod, enter
return
. If you are done and no longer need to connect to Redis, run the following command from the/k8s-custom-iptables/
directory:./uninstall.sh
What's next
Connect to your Redis instance using a sample application that runs on:
- Compute Engine
- GKE
- Cloud Run (fully managed)
- App Engine standard environment
- App Engine flexible environment
- Cloud Functions