Lionel DebrouxLe 16/12/2014 à 08:04
Une base NoSQL, en l'occurrence Redis, est une des technos de base du système (qui n'est pas une appli Web) sur laquelle la petite équipe dans laquelle je suis a travaillé depuis le printemps 2011. Je suis un de ceux qui ont le moins interagi avec Redis, ceci dit.
Comme vous avez dû le voir, Redis est fait pour stocker des types de données simples: hashes clé-valeur, sets, etc. Et les footprints disque, RAM et CPU de Redis sont beaucoup plus faibles que ceux des principaux SGBDR, donc c'est plus sympa pour l'embarqué.
MongoDB n'était pas une possibilité pour nous car le code ne prête aucune attention au désalignement des accès (du moins, c'était le cas en 2011, 2012 et encore 2013, je vérifiais de temps en temps), ce qui le rend donc peu portable, sans modifs non officielles pas souvent mises à jour, hors des x86/x86_64. Or, on voulait pouvoir tourner notamment sur des ARM < v7.
Pour les traitements où il y a beaucoup de relations entre éléments, les bases de données relationnelles restent plus adaptées, bien sûr. Il y en a pour toutes les tailles: MySQL/MariaDB, PostgreSQL, Oracle, SQLite3.
Et pour les séries temporelles, il y a d'autres bases de données plus adaptées que Redis.