sql >> Database >  >> NoSQL >> Redis

Hoe een complexe geneste JSON op te slaan in Redis met Python

Je kunt dat niet direct doen, maar gelukkig is er een nieuwe Redis-module genaamd RedisJSON die precies doet wat je nodig hebt, en het heeft ook een mooie Python-binding. U kunt een RedisJSON-dockercontainer starten of Redis 4.0+ gebruiken, vervolgens RedisJSON downloaden/compileren en installeren en Redis configureren om deze te laden, en het voegt native commando's toe voor JSON-manipulatie.

Hiermee kunt u JSON-documenten opslaan in Redis en vervolgens een specifiek element in de documentboom ophalen of wijzigen, zonder het document op te halen (of zelfs intern te ontleden). Met de Python-client kun je zelfs python-dicts opslaan en deze automatisch naar JSON converteren.

ReJSON-module:http://redisjon.io

Python-client:https://pypi.python.org/pypi/rejson

Voorbeeld:

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


  1. Node mangoest zoekquery in lus werkt niet

  2. Waarde retourneren van asynchrone functie node.js

  3. Het uitvoeren van batches van opdrachten met behulp van redis cli

  4. Alle items uit een MongoDB-verzameling verwijderen