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

Comment stocker un JSON imbriqué complexe dans Redis à l'aide de Python

Vous ne pouvez pas le faire directement, mais heureusement, il existe un nouveau module Redis appelé RedisJSON qui fait exactement ce dont vous avez besoin, et il a également une belle liaison Python. Vous pouvez lancer un conteneur Docker RedisJSON ou utiliser Redis 4.0+, puis télécharger/compiler et installer RedisJSON et configurer Redis pour le charger, et il ajoute des commandes natives pour la manipulation JSON.

Il vous permet de stocker des documents JSON dans Redis, puis de récupérer ou de modifier un élément spécifique dans l'arborescence du document, sans récupérer (ni même analyser en interne) le document. Son client Python vous permet même de stocker des dicts python et de les convertir automatiquement en JSON.

Module ReJSON :http://redisjon.io

Client Python :https://pypi.python.org/pypi/rejson

Exemple :

from rejson import Client, Path

rj = Client(host='localhost', port=6379)

# Set the key `obj` to some object
obj = {
    'answer': 42,
    'arr': [None, True, 3.14],
    'truth': {
        'coord': 'out there'
    }
}
rj.jsonset('obj', Path.rootPath(), obj)

# Get something
print 'Is there anybody... {}?'.format(
    rj.jsonget('obj', Path('.truth.coord'))
)