Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como armazenar um JSON aninhado complexo no Redis usando Python


Você não pode fazer isso diretamente, mas felizmente há um novo módulo Redis chamado RedisJSON que faz exatamente o que você precisa e também possui uma boa ligação Python. Você pode iniciar um contêiner do Docker RedisJSON ou usar o Redis 4.0+, fazer o download/compilar e instalar o RedisJSON e configurar o Redis para carregá-lo, além de adicionar comandos nativos para manipulação de JSON.

Ele permite armazenar documentos JSON no Redis e, em seguida, buscar ou modificar um elemento específico na árvore do documento, sem recuperar (ou mesmo analisar internamente) o documento. Seu cliente Python ainda permite armazenar dicts python e convertê-los em JSON automaticamente.

Módulo ReJSON:http://redisjon.io

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

Exemplo:
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'))
)