Redis
 sql >> Base de données >  >> NoSQL >> Redis

Python-redis :obtenir des données binaires après la configuration d'un client avec decode_responses=True

Voici ce que j'ai trouvé. Je ne sais pas comment il gérerait les connexions complexes et quoi d'autre il pourrait casser. Ne conduisez pas votre voiture autonome avec ça...

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)

Avec cela, nous pouvons maintenant faire, par exemple :

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

...

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