diff options
author | Jason Little <realtyem@gmail.com> | 2023-05-26 14:28:39 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-26 15:28:39 -0400 |
commit | c835befd10ae0087c3c54a36989ba347313b68af (patch) | |
tree | ed898f1379a6e93a0351aad64023a9b073f7a48a /synapse/server.py | |
parent | Add `MSC3820opt2` as a known room version (#15678) (diff) | |
download | synapse-c835befd10ae0087c3c54a36989ba347313b68af.tar.xz |
Add Unix socket support for Redis connections (#15644)
Adds a new configuration setting to connect to Redis via a Unix socket instead of over TCP. Disabled by default.
Diffstat (limited to 'synapse/server.py')
-rw-r--r-- | synapse/server.py | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/synapse/server.py b/synapse/server.py index f6e245569c..cce5fb66ff 100644 --- a/synapse/server.py +++ b/synapse/server.py @@ -864,22 +864,36 @@ class HomeServer(metaclass=abc.ABCMeta): # We only want to import redis module if we're using it, as we have # `txredisapi` as an optional dependency. - from synapse.replication.tcp.redis import lazyConnection + from synapse.replication.tcp.redis import lazyConnection, lazyUnixConnection - logger.info( - "Connecting to redis (host=%r port=%r) for external cache", - self.config.redis.redis_host, - self.config.redis.redis_port, - ) + if self.config.redis.redis_path is None: + logger.info( + "Connecting to redis (host=%r port=%r) for external cache", + self.config.redis.redis_host, + self.config.redis.redis_port, + ) - return lazyConnection( - hs=self, - host=self.config.redis.redis_host, - port=self.config.redis.redis_port, - dbid=self.config.redis.redis_dbid, - password=self.config.redis.redis_password, - reconnect=True, - ) + return lazyConnection( + hs=self, + host=self.config.redis.redis_host, + port=self.config.redis.redis_port, + dbid=self.config.redis.redis_dbid, + password=self.config.redis.redis_password, + reconnect=True, + ) + else: + logger.info( + "Connecting to redis (path=%r) for external cache", + self.config.redis.redis_path, + ) + + return lazyUnixConnection( + hs=self, + path=self.config.redis.redis_path, + dbid=self.config.redis.redis_dbid, + password=self.config.redis.redis_password, + reconnect=True, + ) def should_send_federation(self) -> bool: "Should this server be sending federation traffic directly?" |