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

redis pour la journalisation

Vous devez garder à l'esprit que Redis est une base de données en mémoire (même si elle peut conserver les données sur le disque). Les données que vous mettez dans Redis doivent tenir en mémoire.

La proposition dans l'article que vous mentionnez concerne l'utilisation de Redis comme système de file d'attente distribué. Les processus de travail retirent les éléments de la file d'attente et les écrivent sur le disque, il n'y a donc pas beaucoup d'éléments dans la mémoire Redis. Cette conception a un défaut :si les processus de travail ne peuvent pas écrire les données assez rapidement sur le disque, la consommation de mémoire Redis explosera - elle doit donc être limitée par la configuration (paramètre Redis maxmemory) ou le logiciel (couper la file d'attente au moment de l'insertion, ou vider la file d'attente lorsqu'elle est pleine).

Maintenant, votre proposition ne fonctionne pas vraiment puisque toutes les données que vous écrivez dans Redis seront conservées en mémoire (même si elles sont conservées sur le disque par Redis lui-même).

Un autre point est que vous ne pouvez pas interroger Redis. Redis n'est pas une base de données relationnelle, il ne supporte aucun mécanisme de requête ad-hoc, uniquement des commandes impliquant des chemins d'accès préalablement définis. Si vous souhaitez rechercher des données avec différents paramètres, vous devez anticiper toutes les recherches possibles et construire les structures de données pertinentes (ensemble, ensembles triés, etc ...) au moment de l'insertion.

Un autre magasin (MongoDB ou une base de données relationnelle) conviendra probablement mieux à votre cas d'utilisation.