בדף הזה מוסבר איך להתחבר למכונה של Memorystore for Redis Cluster.
תמיכה בלקוחות
Memorystore for Redis Cluster לא מספק ספריות לקוח משלו, אלא תומך בספריות לקוח קיימות של צד שלישי שתומכות בפרוטוקול Redis. מידע נוסף על ספריות הלקוח ש-Redis תומכת בהן זמין במאמר לקוחות חיבור נתמכים.
שיטה מומלצת לשימוש בלקוח Redis-py
כדי להתחבר למופע של Memorystore for Redis Cluster באמצעות לקוח Python redis-py, צריך להוסיף את skip_full_coverage_check=True כשמצהירים על Redis Cluster:
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 for Redis Cluster.
עבור כל נקודות הקצה של Private Service Connect באשכול, צריך לאפשר את יציאת ה-TCP מספר 6379, וגם את יציאות ה-TCP מספר 11000 עד 13047. מידע נוסף זמין במאמר פתרון בעיות.
גישה בין אזורים
אפשר לגשת למופע של Memorystore for Redis Cluster מלקוח שנמצא באזור אחר מזה שבו נמצא מופע Memorystore.
הצגת נקודת הקצה של הגילוי באשכול
לכל אשכול יש נקודת קצה (endpoint) לגילוי שאליה הלקוח מתחבר. נקודת הקצה הזו היא שילוב של כתובת IP ומספר יציאה.
אפשר לראות את נקודת הקצה של הגילוי של אשכול ב-Memorystore for Redis Cluster באמצעות המסוף Google Cloud או ה-CLI של gcloud.
המסוף
עוברים לדף Memorystore for Redis Cluster במסוף Google Cloud .
לוחצים על מזהה האשכול.
בקטע Connect to this instance (התחברות למופע הזה), רושמים את כתובת ה-IP ואת מספר היציאה שליד Discovery Endpoint (נקודת קצה של גילוי). שני הערכים האלה ביחד הם נקודת הקצה של הגילוי של האשכול.
gcloud
כדי לראות את נקודת הקצה של הגילוי של האשכול, מריצים את ה-describeCLI של gcloud כמו שמוסבר בקטע הצגת פרטי המופע.
הפלט אמור להיראות כך:
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:. שני הערכים האלה ביחד הם נקודת הקצה של Discovery של האשכול.
התחברות ממכונה וירטואלית ב-Compute Engine באמצעות redis-cli
אפשר להתחבר למכונת Memorystore for Redis Cluster מכל מכונה וירטואלית ב-Compute Engine שמשתמשת ברשת המורשית של מכונת Memorystore.
כדי להתחבר למכונה:
אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine עם Linux שמשתמשת ברשת המורשית עבור מופע Memorystore for Redis Cluster, אתם יכולים ליצור מכונה וירטואלית כזו ולהתחבר אליה באמצעות המדריך להתחלה מהירה ליצירת מכונה וירטואלית עם Linux.
מתקינים את
redis-cliגרסה 6.0 ומעלה במכונה וירטואלית של Compute Engine לפי ההוראות במאמר התקנת Redis ב-Linux.צופים בנקודת הקצה של הגילוי באשכול ורושמים אותה.
כדי להתחבר לנקודת הקצה של ה-Discovery של המופע, מריצים את הפקודה הבאה:
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
Enter
SET HELLO WORLD
תוצאה:
OK
צריך להזין את הפרטים הבאים:
GET HELLO
תוצאה:
"WORLD"
אחרי שמסיימים לבדוק את החיבור לצומת Redis, מומלץ למחוק את המכונה הווירטואלית ב-Compute Engine ששימשה לחיבור למופע Redis. כך תוכלו להימנע מחיובים בחשבון לחיוב ב-Cloud.
התחברות למכונה שמופעלת בה הצפנה במעבר
בקטע הזה מופיעה דוגמה לאופן ההתחברות למופע של Memorystore for Redis Cluster שבו ההצפנה במעבר מופעלת.
אם עדיין אין לכם מכונה וירטואלית ב-Compute Engine שמשתמשת באותה רשת מורשית כמו מופע Redis מהשלב הקודם, אתם יכולים ליצור מכונה וירטואלית ולהתחבר אליה באמצעות המדריך להתחלה מהירה לשימוש במכונה וירטואלית של Linux.
- מתקינים את
redis-cliגרסה 6.0 ואילך במכונה הווירטואלית של Compute Engine לפי ההוראות במאמר התקנת Redis ב-Linux.
- מתקינים את
בודקים את מצב רשות האישורים (CA) שבו משתמשים עבור האשכול.
אם מצב ה-CA הוא per-instance, צריך להתקין את אישורי ה-CA של האשכול לפי ההוראות שבמאמר Install CA certificates on the client.
אם מצב ה-CA הוא shared, צריך להתקין את חבילת אישורי ה-CA של האשכול לפי ההוראות במאמר התקנת חבילת אישורי ה-CA בלקוח.
אם מצב ה-CA הוא בניהול הלקוח, האפליקציות יכולות להתחבר לאשכול בלי שתצטרכו להוריד ולהתקין אישורי CA נוספים. לכן אפשר לדלג על השלב הזה.
צופים בנקודת הקצה של הגילוי באשכול ורושמים אותה.
כדי להתחבר לנקודת הקצה של ה-Discovery של המופע, מריצים את הפקודה הבאה:
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