Você realmente não deveria criar conexões assim. Deixe-me citar a documentação do redis-py.
Nos bastidores, o redis-py usa um pool de conexões para gerenciar conexões com um servidor Redis. Por padrão, cada instância do Redis que você criar criará, por sua vez, seu próprio pool de conexões. Você pode substituir esse comportamento e usar um pool de conexões existente passando a instância do pool de conexões já criada para o argumento connection_pool da classe Redis. Você pode optar por fazer isso para implementar a fragmentação do lado do cliente ou ter um controle mais refinado de como as conexões são gerenciadas.
>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
>>> r = redis.StrictRedis(connection_pool=pool)
Você não pode especificar uma única conexão a ser usada com a biblioteca. Cada instância do Redis terá seu próprio pool de conexões. Quando execute_command() é chamado, ele irá abrir uma conexão do pool (ou abrir um novo) e usar essa conexão. Se você quiser que seu cliente tenha no máximo uma conexão por vez, defina max_connections como 1.