@@ -16,23 +16,43 @@ class RedisConnectionManager:
16
16
def get_connection (cls , decode_responses = True ) -> Redis :
17
17
if cls ._instance is None :
18
18
try :
19
- redis_class : Type [Union [Redis , RedisCluster ]] = redis .cluster .RedisCluster if REDIS_CFG ["cluster_mode" ] else redis .Redis
19
+ if REDIS_CFG ["cluster_mode" ]:
20
+ redis_class : Type [Union [Redis , RedisCluster ]] = redis .cluster .RedisCluster
21
+ connection_params = {
22
+ "host" : REDIS_CFG ["host" ],
23
+ "port" : REDIS_CFG ["port" ],
24
+ "username" : REDIS_CFG ["username" ],
25
+ "password" : REDIS_CFG ["password" ],
26
+ "ssl" : REDIS_CFG ["ssl" ],
27
+ "ssl_ca_path" : REDIS_CFG ["ssl_ca_path" ],
28
+ "ssl_keyfile" : REDIS_CFG ["ssl_keyfile" ],
29
+ "ssl_certfile" : REDIS_CFG ["ssl_certfile" ],
30
+ "ssl_cert_reqs" : REDIS_CFG ["ssl_cert_reqs" ],
31
+ "ssl_ca_certs" : REDIS_CFG ["ssl_ca_certs" ],
32
+ "decode_responses" : decode_responses ,
33
+ "lib_name" : f"redis-py(mcp-server_v{ __version__ } )" ,
34
+ "max_connections_per_node" : 10
35
+ }
36
+ else :
37
+ redis_class : Type [Union [Redis , RedisCluster ]] = redis .Redis
38
+ connection_params = {
39
+ "host" : REDIS_CFG ["host" ],
40
+ "port" : REDIS_CFG ["port" ],
41
+ "db" : REDIS_CFG ["db" ],
42
+ "username" : REDIS_CFG ["username" ],
43
+ "password" : REDIS_CFG ["password" ],
44
+ "ssl" : REDIS_CFG ["ssl" ],
45
+ "ssl_ca_path" : REDIS_CFG ["ssl_ca_path" ],
46
+ "ssl_keyfile" : REDIS_CFG ["ssl_keyfile" ],
47
+ "ssl_certfile" : REDIS_CFG ["ssl_certfile" ],
48
+ "ssl_cert_reqs" : REDIS_CFG ["ssl_cert_reqs" ],
49
+ "ssl_ca_certs" : REDIS_CFG ["ssl_ca_certs" ],
50
+ "decode_responses" : decode_responses ,
51
+ "lib_name" : f"redis-py(mcp-server_v{ __version__ } )" ,
52
+ "max_connections" : 10
53
+ }
20
54
21
- cls ._instance = redis_class (
22
- host = REDIS_CFG ["host" ],
23
- port = REDIS_CFG ["port" ],
24
- username = REDIS_CFG ["username" ],
25
- password = REDIS_CFG ["password" ],
26
- ssl = REDIS_CFG ["ssl" ],
27
- ssl_ca_path = REDIS_CFG ["ssl_ca_path" ],
28
- ssl_keyfile = REDIS_CFG ["ssl_keyfile" ],
29
- ssl_certfile = REDIS_CFG ["ssl_certfile" ],
30
- ssl_cert_reqs = REDIS_CFG ["ssl_cert_reqs" ],
31
- ssl_ca_certs = REDIS_CFG ["ssl_ca_certs" ],
32
- decode_responses = decode_responses ,
33
- lib_name = f"redis-py(mcp-server_v{ __version__ } )" ,
34
- ** ({"max_connections_per_node" : 10 } if REDIS_CFG ["cluster_mode" ] else {"max_connections" : 10 })
35
- )
55
+ cls ._instance = redis_class (** connection_params )
36
56
37
57
except redis .exceptions .ConnectionError :
38
58
print ("Failed to connect to Redis server" , file = sys .stderr )
0 commit comments