Prerequisites
- Ensure you have Python 3.x installed on your system.
- Install the Google Cloud SDK for authentication and managing cloud services.
- Make sure you have the necessary IAM permissions to interact with Google Cloud Memorystore via API.
Set Up Environment
- Install the required Python client libraries. You can install these using pip:
pip install google-auth google-cloud-redis
- Authenticate your application to access Google Cloud services:
gcloud auth application-default login
Create a Memorystore Instance
- Use the Python client library to create a Redis instance in Google Cloud Memorystore. First, import necessary modules:
from google.cloud import redis_v1
# Create a client
client = redis_v1.CloudRedisClient()
# Define the location and instance ID
location = 'projects/YOUR_PROJECT_ID/locations/us-central1'
instance_id = 'my-redis-instance'
- Next, set up the instance configuration and start the instance creation process:
instance = {
'tier': redis_v1.CloudRedis.Tier.BASIC,
'memory_size_gb': 1
}
# Create the instance
operation = client.create_instance(parent=location, instance_id=instance_id, instance=instance)
print("Waiting for operation to complete...")
operation.result()
Connect to Memorystore Instance
- Once the Redis instance is running, establish a connection to it. You'll need the endpoint URL and port to do this. Retrieve the instance details:
instance_path = client.instance_path('YOUR_PROJECT_ID', 'us-central1', 'my-redis-instance')
response = client.get_instance(name=instance_path)
host = response.host
port = response.port
print(f"Connect to your Redis instance at {host}:{port}")
- Use a Redis client library like `redis-py` to connect:
pip install redis
- Connect using the Redis client:
import redis
# Connect to redis instance
r = redis.StrictRedis(host=host, port=port, decode_responses=True)
# Test the connection
r.set('test_key', 'test_value')
print(f"test_key: {r.get('test_key')}")
Manage Data
- Once connected, you can perform standard Redis operations such as storing and retrieving data:
# Set data
r.set('key1', 'value1')
# Get data
value = r.get('key1')
print(f"value for 'key1': {value}")
# Delete data
r.delete('key1')
Final Notes
- Remember to handle exceptions and errors appropriately, especially with network operations.
- Consider automating cleanup tasks, such as deleting test data or Redis instances when they are no longer needed.