Đây là những gì tôi nghĩ ra. Không chắc nó sẽ xử lý các kết nối phức tạp như thế nào và nó có thể bị hỏng những gì khác. Chỉ cần không chạy xe tự lái của bạn với điều đó ...
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)
Với điều này, bây giờ chúng ta có thể làm, ví dụ:
client.set(name, pickle.dumps(stuff))
...
# later
with new_client(client, decode_responses=False) as binclient:
data = binclient.get(name)
stuff = pickle.loads(data)