Redis
 sql >> Datenbank >  >> NoSQL >> Redis

So speichern Sie ein komplexes verschachteltes JSON in Redis mit Python

Sie können das nicht direkt tun, aber zum Glück gibt es ein neues Redis-Modul namens RedisJSON, das genau das tut, was Sie brauchen, und es hat auch eine nette Python-Bindung. Sie können einen RedisJSON-Docker-Container starten oder Redis 4.0+ verwenden, dann RedisJSON herunterladen/kompilieren und installieren und Redis so konfigurieren, dass es geladen wird, und es fügt native Befehle für die JSON-Manipulation hinzu.

Damit können Sie JSON-Dokumente in Redis speichern und dann ein bestimmtes Element in der Dokumentenstruktur entweder abrufen oder ändern, ohne das Dokument abzurufen (oder sogar intern zu analysieren). Mit seinem Python-Client können Sie sogar Python-Diktate speichern und automatisch in JSON konvertieren.

ReJSON-Modul:http://redisjon.io

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

Beispiel:

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