MCPcopy
hub / github.com/redis/redis-py / _connect

Method _connect

redis/asyncio/connection.py:971–993  ·  view source on GitHub ↗

Create a TCP socket connection

(self)

Source from the content-addressed store, hash-verified

969 return {"host": self.host, "port": self.port}
970
971 async def _connect(self):
972 """Create a TCP socket connection"""
973 async with async_timeout(self.socket_connect_timeout):
974 reader, writer = await asyncio.open_connection(
975 **self._connection_arguments()
976 )
977 self._reader = reader
978 self._writer = writer
979 sock = writer.transport.get_extra_info("socket")
980 if sock:
981 sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
982 try:
983 # TCP_KEEPALIVE
984 if self.socket_keepalive:
985 sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
986 for k, v in self.socket_keepalive_options.items():
987 sock.setsockopt(socket.SOL_TCP, k, v)
988
989 except (OSError, TypeError):
990 # `socket_keepalive_options` might contain invalid options
991 # causing an error. Do not leave the connection open.
992 writer.close()
993 raise
994
995 def _host_error(self) -> str:
996 return f"{self.host}:{self.port}"

Callers

nothing calls this directly

Calls 3

_connection_argumentsMethod · 0.95
setsockoptMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected