231 votes

Redis cache vs. utiliser la mémoire directement

Je n'ai pas encore utilisé Redis, mais j'en ai entendu parler et j'ai l'intention de l'essayer pour mettre en cache des données.

J'ai entendu dire que Redis utilise la mémoire comme base de données de stockage de cache. Quel est l'intérêt de Redis, puisque je peux utiliser un objet ou un dictionnaire pour stocker des données? Comme ceci:

var cache = {
    key: {

    },
    key: {

    }
    ...
}

Quels sont les avantages d'utiliser Redis?

352voto

Didier Spezia Points 23333

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

  • Redis peut être accessible par tous les processus de vos applications, éventuellement en cours d'exécution sur plusieurs nœuds (ce qu'une mémoire locale ne peut pas réaliser).

  • Le stockage mémoire de Redis est assez efficace et se fait dans un processus séparé. Si l'application s'exécute sur une plateforme dont la mémoire est ramassée par le garbage collector (node.js, java, etc...), cela permet de gérer un cache/magasin mémoire beaucoup plus important. En pratique, les tas très grands ne se comportent pas bien avec les langages à ramassage des ordures.

  • Redis peut persister 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, diverses politiques d'éviction d'éléments, des files d'attente bloquantes, pub/sub, atomicité, scripts Lua, etc...

  • Redis peut reproduire son activité avec un mécanisme maître/esclave pour mettre en œuvre une haute disponibilité.

Fondamentalement, si vous avez besoin que votre application s'étende sur plusieurs nœuds partageant les mêmes données, alors quelque chose comme Redis (ou tout autre magasin distant clé/valeur) sera nécessaire.

20voto

Ashish Bainade Points 84

Mon équipe aime utiliser l'architecture sans serveur, où chaque requête peut aller vers un conteneur différent. Dans ce cas, Redis peut jouer un rôle très important.

Nous ne pouvons pas utiliser une simple cache dans le sans serveur car nous ne pouvons pas être sûr que notre requête sera traitée par le même conteneur où notre cache simple est stockée. Redis est une bonne solution car il stocke la cache à un emplacement distant. Nous pouvons accéder à Redis de n'importe où.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X