Google Cloud Redis API client library for managing fully managed Redis instances on Google Cloud
npx @tessl/cli install tessl/pypi-google-cloud-redis@2.18.0Google Cloud Redis API client library provides Python bindings for managing Google Cloud Memorystore for Redis instances. This fully managed Redis service delivers extreme performance for applications running on Google Cloud without the operational burden of managing complex Redis deployments.
pip install google-cloud-redisfrom google.cloud import redisFor specific API versions:
from google.cloud import redis_v1
from google.cloud import redis_v1beta1Direct client imports:
from google.cloud.redis import CloudRedisClient, CloudRedisAsyncClientFor specific types and request/response classes:
from google.cloud.redis import (
Instance,
InputConfig,
OutputConfig,
CreateInstanceRequest,
ListInstancesRequest
)from google.cloud.redis import CloudRedisClient
# Initialize the client
client = CloudRedisClient()
# List all Redis instances in a location
project_id = "your-project-id"
location = "us-central1"
parent = f"projects/{project_id}/locations/{location}"
instances = client.list_instances(parent=parent)
for instance in instances:
print(f"Instance: {instance.name}")
print(f"Host: {instance.host}:{instance.port}")
print(f"State: {instance.state}")
# Get details of a specific instance
instance_name = f"projects/{project_id}/locations/{location}/instances/my-redis"
instance = client.get_instance(name=instance_name)
print(f"Redis version: {instance.redis_version}")
print(f"Memory size: {instance.memory_size_gb}GB")
# Create a new Redis instance
from google.cloud.redis import Instance
new_instance = Instance(
display_name="My Redis Instance",
tier=Instance.Tier.STANDARD_HA,
memory_size_gb=1,
redis_version="REDIS_6_X"
)
operation = client.create_instance(
parent=parent,
instance_id="my-new-redis",
instance=new_instance
)
# Wait for the operation to complete
result = operation.result()
print(f"Created instance: {result.name}")The google-cloud-redis client library is built on Google's API Client (GAPIC) framework, providing:
CloudRedisClient) and asynchronous (CloudRedisAsyncClient) clientsCore client functionality for authentication, configuration, and connection management to the Cloud Redis API.
class CloudRedisClient:
def __init__(
self,
*,
credentials: Optional[Credentials] = None,
transport: Optional[Union[str, CloudRedisTransport]] = None,
client_options: Optional[ClientOptions] = None
) -> None: ...
class CloudRedisAsyncClient:
def __init__(
self,
*,
credentials: Optional[Credentials] = None,
transport: Optional[Union[str, CloudRedisTransport]] = None,
client_options: Optional[ClientOptions] = None
) -> None: ...Complete lifecycle management of Redis instances including creation, configuration updates, deletion, and status monitoring.
def list_instances(
self,
*,
parent: str,
page_size: Optional[int] = None,
page_token: Optional[str] = None
) -> ListInstancesPager: ...
def get_instance(self, *, name: str) -> Instance: ...
def create_instance(
self,
*,
parent: str,
instance_id: str,
instance: Instance
) -> Operation: ...
def update_instance(
self,
*,
update_mask: FieldMask,
instance: Instance
) -> Operation: ...
def delete_instance(self, *, name: str) -> Operation: ...Import and export functionality for moving data in and out of Redis instances using Google Cloud Storage.
def import_instance(
self,
*,
name: str,
input_config: InputConfig
) -> Operation: ...
def export_instance(
self,
*,
name: str,
output_config: OutputConfig
) -> Operation: ...Advanced instance management including maintenance scheduling, failover operations, Redis version upgrades, and authentication.
def upgrade_instance(
self,
*,
name: str,
redis_version: str
) -> Operation: ...
def failover_instance(
self,
*,
name: str,
data_protection_mode: FailoverInstanceRequest.DataProtectionMode = ...
) -> Operation: ...
def get_instance_auth_string(
self, *, name: str
) -> InstanceAuthString: ...
def reschedule_maintenance(
self,
*,
name: str,
reschedule_type: RescheduleMaintenanceRequest.RescheduleType,
schedule_time: Optional[Timestamp] = None
) -> Operation: ...class Instance:
name: str
display_name: str
labels: Dict[str, str]
location_id: str
alternative_location_id: str
redis_version: str
reserved_ip_range: str
secondary_ip_range: str
host: str
port: int
current_location_id: str
create_time: Timestamp
state: Instance.State
status_message: str
redis_configs: Dict[str, str]
tier: Instance.Tier
memory_size_gb: int
authorized_network: str
persistence_iam_identity: str
connect_mode: Instance.ConnectMode
auth_enabled: bool
server_ca_certs: List[TlsCertificate]
transit_encryption_mode: Instance.TransitEncryptionMode
maintenance_policy: MaintenancePolicy
maintenance_schedule: MaintenanceSchedule
replica_count: int
nodes: List[NodeInfo]
read_endpoint: str
read_endpoint_port: int
read_replicas_mode: Instance.ReadReplicasMode
customer_managed_key: str
persistence_config: PersistenceConfig
suspension_reasons: List[Instance.SuspensionReason]
maintenance_version: str
available_maintenance_versions: List[str]
class Instance.State(Enum):
STATE_UNSPECIFIED = 0
CREATING = 1
READY = 2
UPDATING = 3
DELETING = 4
REPAIRING = 5
MAINTENANCE = 6
IMPORTING = 8
FAILING_OVER = 9
class Instance.Tier(Enum):
TIER_UNSPECIFIED = 0
BASIC = 1
STANDARD_HA = 3
class Instance.ConnectMode(Enum):
CONNECT_MODE_UNSPECIFIED = 0
DIRECT_PEERING = 1
PRIVATE_SERVICE_ACCESS = 2
class Instance.TransitEncryptionMode(Enum):
TRANSIT_ENCRYPTION_MODE_UNSPECIFIED = 0
SERVER_AUTHENTICATION = 1
DISABLED = 2
class Instance.ReadReplicasMode(Enum):
READ_REPLICAS_MODE_UNSPECIFIED = 0
READ_REPLICAS_DISABLED = 1
READ_REPLICAS_ENABLED = 2
class Instance.SuspensionReason(Enum):
SUSPENSION_REASON_UNSPECIFIED = 0
CUSTOMER_MANAGED_KEY_ISSUE = 1class PersistenceConfig:
persistence_mode: PersistenceConfig.PersistenceMode
rdb_snapshot_period: PersistenceConfig.SnapshotPeriod
rdb_next_snapshot_time: Timestamp
rdb_snapshot_start_time: Timestamp
class PersistenceConfig.PersistenceMode(Enum):
PERSISTENCE_MODE_UNSPECIFIED = 0
DISABLED = 1
RDB = 2
class PersistenceConfig.SnapshotPeriod(Enum):
SNAPSHOT_PERIOD_UNSPECIFIED = 0
ONE_HOUR = 3
SIX_HOURS = 4
TWELVE_HOURS = 5
TWENTY_FOUR_HOURS = 6
class MaintenancePolicy:
create_time: Timestamp
update_time: Timestamp
description: str
weekly_maintenance_window: List[WeeklyMaintenanceWindow]
class WeeklyMaintenanceWindow:
day: DayOfWeek
start_time: TimeOfDay
duration: Duration
class MaintenanceSchedule:
start_time: Timestamp
end_time: Timestamp
can_reschedule: bool
schedule_deadline_time: TimestampAPI Method Parameters: All client methods accept additional standard gRPC parameters (retry, timeout, metadata) that are omitted from the documentation for clarity. These parameters provide fine-grained control over request behavior and are documented in the Google API Client libraries documentation.