| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from redis import Redis
- from redis.asyncio import Redis as AsyncRedis
- from redis.asyncio.sentinel import Sentinel as AsyncSentinel
- from redis.sentinel import Sentinel
- from alien_gateway.config import settings
- def _sentinel_kwargs() -> dict:
- return settings.REDIS_SENTINEL_KWARGS
- def get_sentinel_client() -> Sentinel:
- return Sentinel(
- settings.REDIS_SENTINEL_NODES,
- socket_timeout=0.5,
- sentinel_kwargs=_sentinel_kwargs(),
- )
- def get_async_sentinel_client() -> AsyncSentinel:
- return AsyncSentinel(
- settings.REDIS_SENTINEL_NODES,
- socket_timeout=0.5,
- sentinel_kwargs=_sentinel_kwargs(),
- )
- def get_redis_master() -> Redis:
- return get_sentinel_client().master_for(
- service_name=settings.REDIS_MASTER_NAME,
- password=settings.REDIS_PASSWORD or None,
- db=settings.REDIS_DB,
- )
- def get_redis_slave() -> Redis:
- return get_sentinel_client().slave_for(
- service_name=settings.REDIS_MASTER_NAME,
- password=settings.REDIS_PASSWORD or None,
- db=settings.REDIS_DB,
- )
- def get_async_redis_master() -> AsyncRedis:
- return get_async_sentinel_client().master_for(
- service_name=settings.REDIS_MASTER_NAME,
- password=settings.REDIS_PASSWORD or None,
- db=settings.REDIS_DB,
- )
- def get_async_redis_slave() -> AsyncRedis:
- return get_async_sentinel_client().slave_for(
- service_name=settings.REDIS_MASTER_NAME,
- password=settings.REDIS_PASSWORD or None,
- db=settings.REDIS_DB,
- )
- def get_redis() -> Redis:
- # 默认返回主节点客户端,统一写入入口
- return get_redis_master()
- def get_async_redis() -> AsyncRedis:
- # 默认返回主节点客户端,统一写入入口
- return get_async_redis_master()
|