Redis
 sql >> Database >  >> NoSQL >> Redis

Python-redis:ottieni dati binari dopo che un client è stato configurato con decode_responses=True

Ecco cosa mi è venuto in mente. Non sono sicuro di come gestirebbe connessioni complesse e cos'altro potrebbe interrompere. Basta non guidare la tua auto a guida autonoma con quello...

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)

Con questo, ora possiamo fare, ad es.:

client.set(name, pickle.dumps(stuff))

...

# later
with new_client(client, decode_responses=False) as binclient:
    data = binclient.get(name)
stuff = pickle.loads(data)