Source code for falkordb.cluster

import socket

import redis.exceptions as redis_exceptions  # type: ignore[import-not-found]
from redis.cluster import RedisCluster  # type: ignore[import-not-found]


# detect if a connection is a Cluster
[docs] def Is_Cluster(conn): info = conn.info(section="server") return "redis_mode" in info and info["redis_mode"] == "cluster"
# create a cluster connection from a Redis connection
[docs] def Cluster_Conn( conn, ssl, cluster_error_retry_attempts=3, startup_nodes=None, require_full_coverage=False, reinitialize_steps=5, read_from_replicas=False, dynamic_startup_nodes=True, url=None, address_remap=None, ): connection_kwargs = conn.connection_pool.connection_kwargs host = connection_kwargs.pop("host") port = connection_kwargs.pop("port") username = connection_kwargs.pop("username") password = connection_kwargs.pop("password") retry = connection_kwargs.pop("retry", None) retry_on_timeout = connection_kwargs.pop("retry_on_timeout", None) retry_on_error = connection_kwargs.pop( "retry_on_error", [ ConnectionRefusedError, ConnectionError, TimeoutError, socket.timeout, redis_exceptions.ConnectionError, ], ) return RedisCluster( host=host, port=port, username=username, password=password, decode_responses=True, ssl=ssl, retry=retry, retry_on_timeout=retry_on_timeout, retry_on_error=retry_on_error, require_full_coverage=require_full_coverage, reinitialize_steps=reinitialize_steps, read_from_replicas=read_from_replicas, dynamic_startup_nodes=dynamic_startup_nodes, url=url, address_remap=address_remap, startup_nodes=startup_nodes, cluster_error_retry_attempts=cluster_error_retry_attempts, )