or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

client-management.mddata-management.mdindex.mdinstance-operations.mdmaintenance-operations.md
tile.json

tessl/pypi-google-cloud-redis

Google Cloud Redis API client library for managing fully managed Redis instances on Google Cloud

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/google-cloud-redis@2.18.x

To install, run

npx @tessl/cli install tessl/pypi-google-cloud-redis@2.18.0

index.mddocs/

Google Cloud Redis

Google 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.

Package Information

  • Package Name: google-cloud-redis
  • Language: Python
  • Installation: pip install google-cloud-redis
  • API Service: redis.googleapis.com
  • Library Type: GAPIC Auto-generated

Core Imports

from google.cloud import redis

For specific API versions:

from google.cloud import redis_v1
from google.cloud import redis_v1beta1

Direct client imports:

from google.cloud.redis import CloudRedisClient, CloudRedisAsyncClient

For specific types and request/response classes:

from google.cloud.redis import (
    Instance, 
    InputConfig, 
    OutputConfig,
    CreateInstanceRequest,
    ListInstancesRequest
)

Basic Usage

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}")

Architecture

The google-cloud-redis client library is built on Google's API Client (GAPIC) framework, providing:

  • Client Classes: Synchronous (CloudRedisClient) and asynchronous (CloudRedisAsyncClient) clients
  • Type System: Protocol buffer-based request, response, and data types
  • Transport Layer: Support for gRPC and REST transports with automatic retry and pagination
  • Operation Management: Long-running operations for instance lifecycle management
  • Authentication: Integration with Google Cloud authentication and service accounts

Capabilities

Redis Client Management

Core 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: ...

Redis Client Management

Instance Operations

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: ...

Instance Operations

Data Management

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: ...

Data Management

Maintenance and Operations

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: ...

Maintenance and Operations

Core Types

Instance

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 = 1

Configuration Types

class 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: Timestamp

Notes

API 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.