Hier is wat ik bedacht. Ik weet niet zeker hoe het complexe verbindingen zou verwerken en wat het nog meer zou kunnen verbreken. Laat je zelfrijdende auto daar maar niet mee rijden...
def new_client(client, **kwargs):
"""return a new Redis client based on an existing one,
with some kwargs modified.
"""
kwargs = {**client.connection_pool.connection_kwargs, **kwargs}
return redis.StrictRedis(**kwargs)
Hiermee kunnen we nu bijvoorbeeld doen:
client.set(name, pickle.dumps(stuff))
...
# later
with new_client(client, decode_responses=False) as binclient:
data = binclient.get(name)
stuff = pickle.loads(data)