Implementation:LMCache LMCache Redis Adapter
| Knowledge Sources | |
|---|---|
| Domains | Storage Backend, Redis Integration |
| Last Updated | 2026-02-09 00:00 GMT |
Overview
The Redis adapter module provides three ConnectorAdapter implementations for Redis standalone, Redis Sentinel, and Redis Cluster deployments.
Description
This module defines three adapter classes: RedisConnectorAdapter handles standalone Redis, Rediss (SSL), and Unix socket URLs; RedisSentinelConnectorAdapter parses sentinel URLs with optional authentication and multiple host:port pairs; and RedisClusterConnectorAdapter handles Redis Cluster URLs with multiple nodes. Each adapter lazily imports the corresponding connector class (RedisConnector, RedisSentinelConnector, RedisClusterConnector) to avoid circular dependencies. The Sentinel and Cluster adapters parse username:password authentication from the URL and support comma-separated multi-host configurations.
Usage
Use these adapters when connecting LMCache to Redis for remote KV cache storage. Choose the appropriate URL scheme: redis:// or rediss:// for standalone, redis-sentinel:// for Sentinel-managed deployments, or redis-cluster:// for Redis Cluster. The adapters are auto-discovered by the ConnectorManager.
Code Reference
Source Location
- Repository: LMCache
- File: lmcache/v1/storage_backend/connector/redis_adapter.py
- Lines: 1-122
Signature
class RedisConnectorAdapter(ConnectorAdapter):
def __init__(self) -> None: ...
def can_parse(self, url: str) -> bool: ...
def create_connector(self, context: ConnectorContext) -> RemoteConnector: ...
class RedisSentinelConnectorAdapter(ConnectorAdapter):
def __init__(self) -> None: ...
def create_connector(self, context: ConnectorContext) -> RemoteConnector: ...
class RedisClusterConnectorAdapter(ConnectorAdapter):
def __init__(self) -> None: ...
def can_parse(self, url: str) -> bool: ...
def create_connector(self, context: ConnectorContext) -> RemoteConnector: ...
Import
from lmcache.v1.storage_backend.connector.redis_adapter import (
RedisConnectorAdapter,
RedisSentinelConnectorAdapter,
RedisClusterConnectorAdapter,
)
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| context | ConnectorContext | Yes | Contains the Redis URL, event loop, local CPU backend, and config |
| context.url | str | Yes | Redis connection URL (e.g., redis://localhost:6379, redis-sentinel://user:pass@host1:26379,host2:26379/mymaster, redis-cluster://host1:7000,host2:7001)
|
Outputs
| Name | Type | Description |
|---|---|---|
| create_connector return | RemoteConnector | A RedisConnector, RedisSentinelConnector, or RedisClusterConnector instance depending on the URL scheme |
Usage Examples
# Standalone Redis
from lmcache.v1.storage_backend.connector import CreateConnector
connector = CreateConnector(
url="redis://localhost:6379",
loop=event_loop,
local_cpu_backend=cpu_backend,
config=config,
metadata=metadata,
)
# Redis Sentinel with authentication
connector = CreateConnector(
url="redis-sentinel://user:password@sentinel1:26379,sentinel2:26379/mymaster",
loop=event_loop,
local_cpu_backend=cpu_backend,
config=config,
metadata=metadata,
)
# Redis Cluster
connector = CreateConnector(
url="redis-cluster://node1:7000,node2:7001",
loop=event_loop,
local_cpu_backend=cpu_backend,
config=config,
metadata=metadata,
)