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

Alternatives aux structures imbriquées dans Redis ?

Vous avez essentiellement deux stratégies :

  • vous pouvez sérialiser vos objets complexes et les stocker sous forme de chaînes. Nous suggérons json ou msgpack pour le format de sérialisation. C'est assez facile à manipuler à partir de la plupart des langages côté client. Si un accès côté serveur est nécessaire, un script Lua côté serveur peut facilement encoder/décoder ces objets puisque Redis est compilé avec msgpack et le support json pour Lua.

  • vous pouvez diviser vos objets en différentes clés. Au lieu de stocker user:id et une structure de données complexe à cet identifiant, vous pouvez stocker plusieurs clés telles que user:id, user:id:address_list, user:id:document_lists, etc ... Si vous avez besoin d'atomicité, pipelining MULTI/ Les blocs EXEC peuvent être utilisés pour garantir la cohérence des données et agréger les allers-retours.

Voir un exemple simple dans cette réponse :

La commande LPUSH fonctionnera-t-elle sur un enregistrement initialisé à partir de JSON ?

Enfin, Redis n'est pas une base de données orientée document. Si vous avez vraiment beaucoup de documents complexes, peut-être pourriez-vous être mieux servi par des solutions telles que MongoDB, ArangoDB, CouchDB, Couchbase, etc...