Redis cache vs utilisation de mémoire directement

Je n’ai pas encore utilisé Redis, mais j’en ai entendu parler et je prévois de l’essayer en tant que stockage de cache.

J’ai entendu Redis utiliser la mémoire comme firebase database de la mémoire cache, alors quelle est la différence si j’utilise une variable en tant que type de données object ou dictionnaire pour stocker des données? comme:

var cache = { key: { }, key: { } ... } 

Quel est l’avantage de Redis?

Redis est un serveur de structure de données distant. Il est certainement plus lent que de simplement stocker les données dans la mémoire locale (car cela implique des allers-retours de socket pour récupérer / stocker les données). Cependant, il apporte également des propriétés intéressantes:

  • Redis est accessible par tous les processus de vos applications, exécutés éventuellement sur plusieurs nœuds (ce que la mémoire locale ne peut atteindre).

  • Le stockage de mémoire Redis est très efficace et réalisé dans un processus distinct. Si l’application s’exécute sur une plate-forme dont la mémoire est récupérée (node.js, java, etc …), elle permet de gérer un cache / magasin de mémoire beaucoup plus important. En pratique, les très gros tas ne fonctionnent pas bien avec les langues collectées par les ordures.

  • Redis peut conserver les données sur le disque si nécessaire.

  • Redis est un peu plus qu’un simple cache: il fournit diverses structures de données, différentes politiques d’expulsion d’éléments, des files d’attente de blocage, des pub / sous, de l’atomicité, des scripts Lua, etc.

  • Redis peut répliquer son activité avec un mécanisme maître / esclave afin de mettre en œuvre la haute disponibilité.

Fondamentalement, si votre application doit évoluer sur plusieurs nœuds partageant les mêmes données, alors quelque chose comme Redis (ou tout autre magasin de clé / valeur distant) sera requirejs.

Actuellement, nous sums plus attirés par l’architecture serveur moins où chaque demande peut aller à un conteneur différent. Dans ce cas, le redis peut jouer un rôle très important.

Nous ne pouvons pas utiliser moins de cache simple sur le serveur car nous ne pouvons pas être sûrs que notre requête est servie dans le même conteneur où notre simple cache est stocké.

Dans ce cas, nous devons utiliser redis car il stocke le cache à distance et nous pouvons accéder à même les changements de conteneur dans l’architecture du serveur moins.