Questa pagina spiega come connettersi a un'istanza di Memorystore for Redis Cluster.
Assistenza clienti
Il cluster Memorystore for Redis non dispone di librerie client proprie, ma supporta le librerie client di terze parti esistenti che supportano il protocollo Redis. Un elenco di esempio di client è disponibile nella pagina Clienti di Redis.
Best practice per il client Redis py
Per connetterti all'istanza Cluster Memorystore for Redis utilizzando il client Python redis-py, devi aggiungere skip_full_coverage_check=True
quando dichiari un cluster Redis:
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'))
Accesso tra regioni diverse
Puoi accedere a un'istanza del cluster Memorystore for Redis da un client che si trova in una regione diversa da quella in cui si trova l'istanza di Memorystore.
Visualizza l'endpoint di rilevamento del tuo cluster
Per visualizzare l'endpoint di rilevamento del cluster Memorystore, segui queste istruzioni:
Console
Vai alla pagina Memorystore for Redis Cluster nella console Google Cloud.
Fai clic sull'ID cluster.
Nella sezione Connetti a questa istanza, prendi nota delle informazioni relative a indirizzo IP interno e porta di connessione. Questi due valori usati insieme sono l'endpoint di rilevamento del tuo cluster.
gcloud
Per visualizzare l'endpoint di rilevamento del cluster, esegui l'interfaccia alla gcloud CLI di describe
come spiegato nella sezione visualizza i dettagli dell'istanza.
L'output dovrebbe essere simile al seguente:
createTime: '2023-05-30T19:47:37.850985390Z'
discoveryEndpoints:
- address: 10.142.0.10
port: 6379
pscConfig:
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: 87b47146-217d-472e-96e5-13962c0e8706
Prendi nota dell'indirizzo e del numero di porta dell'endpoint elencati nella sezione discovery_endpoints:
. Questi due valori utilizzati insieme sono l'endpoint di rilevamento del tuo cluster.
Connettiti da una VM Compute Engine utilizzando redis-cli
Puoi connetterti all'istanza del cluster Memorystore for Redis da qualsiasi VM di Compute Engine che utilizza la rete autorizzata dell'istanza di Memorystore.
Per connetterti all'istanza:
Se non hai ancora una VM di Compute Engine che utilizza la rete autorizzata per la tua istanza del cluster Memorystore for Redis, creane una e connettila seguendo Guida rapida per creare una VM Linux.
Installa
redis-cli
sulla VM di Compute Engine. Se hai creato una VM basata su Linux Debian, puoi eseguire il seguente comando dal terminale SSH di Compute Engine:sudo apt-get update sudo apt-get install redis
Visualizza l'endpoint di rilevamento del cluster e prendine nota.
Esegui questo comando nel terminale cluster Memorystore for Redis, sostituendo le variabili con valori appropriati.
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
Dove:
- DISCOVERY_ENDPOINT_ADDRESS e PORT_NUMBER sono i valori annotati nel passaggio precedente.
Una volta stabilita la connessione, inserisci alcuni comandi Redis:
Digita:
PING
Risultato:
PONG
Invio
SET HELLO WORLD
Risultato:
OK
Digita:
GET HELLO
Risultato:
"WORLD"
Al termine del test della connessione all'istanza Redis, devi valutare di eliminare la VM di Compute Engine utilizzata per la connessione all'istanza Redis. In questo modo eviterai che al tuo account di fatturazione Cloud vengano addebitati costi.
Connettiti in modo sicuro a un cluster Memorystore tramite Stunnel e telnet
Questa sezione fornisce un esempio di come connettersi a un'istanza del cluster Memorystore for Redis in cui è abilitata la crittografia dei dati in transito utilizzando Stunnel.
Se non hai ancora un cluster Memorystore con la crittografia in transito abilitata, creane uno seguendo la procedura Crea un'istanza con crittografia in transito.
Se non hai ancora una VM Compute Engine che utilizza la stessa rete autorizzata dell'istanza Redis del passaggio precedente, creane una e connettiti seguendo questa guida rapida all'utilizzo di una VM Linux.
Installa gli strumenti necessari per questa guida:
sudo apt-get install stunnel4
sudo apt-get install telnet
Configura la tua VM di Compute Engine da utilizzare con Stunnel:
Crea un nuovo file in cui inserire l'autorità di certificazione (CA) eseguendo il seguente comando:
sudo vim /tmp/server_ca.pem
Visualizza le autorità di certificazione dell'istanza Redis eseguendo questo comando nel terminale standard che utilizzi per gestire le risorse Google Cloud (non il terminale Compute Engine):
gcloud alpha redis clusters get-cluster-certificate-authority --cluster-id=CLUSTER_ID
Copia tutte le autorità di certificazione visibili, incluse la riga
-----BEGIN CERTIFICATE-----
e le righe-----END CERTIFICATE-----
, quindi incolla e salva il fileserver_ca.pem
creato in precedenza.Crea un nuovo file in cui inserire le informazioni di configurazione del tunnel:
sudo vim /etc/stunnel/redis-client.conf
Incolla il testo seguente nel file, sostituendo DISCOVERY_ENDPOINT_ADDRESS con l'indirizzo IP dell'endpoint di connessione privato del cluster:
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:6379 connect=DISCOVERY_ENDPOINT_ADDRESS:PORT_NUMBER
Avvia stunnel:
sudo stunnel /etc/stunnel/redis-client.conf
Verifica che stunnel sia in esecuzione:
ps aux | grep stunnel
Riavvia Stunnel:
sudo systemctl restart stunnel4
Per connetterti all'istanza Redis utilizzando Redis, esegui il comando seguente:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
Una volta stabilita la connessione, inserisci alcuni comandi Redis:
Digita:
PING
Risultato:
PONG