217 votes

Quand utiliser un magasin de clés/valeurs tel que Redis à la place/au côté d'une base de données SQL ?

J'ai lu d'excellentes choses sur les magasins clé/valeur tels que Redis, mais je n'arrive pas à savoir quand il faut les utiliser dans une application.

Disons que je suis en train d'architecturer une application web ; je sais quelle pile je vais utiliser pour le front-end, le back-end, la ou les bases de données, etc. Quels sont les scénarios dans lesquels je pourrais dire "oh, nous avons aussi besoin de Redis pour X, Y ou Z".

J'apprécierais les exemples node.js ainsi que les exemples non-node.js.

3 votes

127voto

yojimbo87 Points 27744

Je n'arrive pas à savoir quand il faut l'utiliser dans une application.

Je vous recommande de lire ce qui contient également des cas d'utilisation. Puisque redis est plutôt orienté vers la mémoire, il est vraiment bon pour les données en temps réel fréquemment mises à jour, comme le magasin de session, la base de données d'état, les statistiques, la mise en cache et c'est structures de données avancées offre une polyvalence à de nombreux autres scénarios.

Redis, cependant, n'est pas une solution de remplacement NoSQL pour les bases de données relationnelles classiques, car il ne prend pas en charge de nombreuses fonctionnalités standard du monde RDBMS, telles que l'interrogation de vos données, ce qui pourrait le ralentir. Les remplacements sont plutôt des bases de données documentaires comme MongoDB ou CouchDB et Redis est idéal pour compléter des fonctionnalités spécifiques où la vitesse et le support de structures de données avancées sont pratiques.

3 votes

Le tutoriel dont tu as donné le lien est génial !

7 votes

J'ai effectué une recherche rapide sur Google avec l'URL de ce site et j'ai trouvé ce site en tête de liste. slideshare.net/dvirsky/introduction-à-redis-version-2

79voto

lobo_tuerto Points 339

Je pense que rien n'explique mieux les cas d'utilisation de Redis que cet article : http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

Je parie que vous aurez un moment de l'aha ! . ;)

Une citation d'un ancien lecteur :

J'ai déjà lu des articles sur Redis et entendu parler de son utilisation par des entreprises, mais je n'ai jamais vraiment compris son utilité. Après avoir lu cet article, je peux dire que je comprends maintenant Redis et son utilité. C'est incroyable qu'après en avoir tant entendu parler, il ait suffi d'un article relativement simple.

0 votes

Cet article est très utile, j'ai ce que je voulais savoir.

0 votes

@Zenw0lf Redis est-il toujours le meilleur pour une mise en cache simple ? Votre post date de 2011, donc pas sûr qu'il y ait quelque chose d'autre que je devrais utiliser.

0 votes

@Moondra Oui, le projet est toujours bien vivant et son créateur fait de fréquentes publications. C'est toujours un superbe projet pour différents scénarios d'utilisation !

12voto

timus2001 Points 3095
  • J'aimerais utiliser redis sur les projets en temps réel. Je l'ai fait récemment pour un système de suivi gps qui était auparavant construit sur mysql comme base de données.

    AVANTAGE

    1. Chaque fois que le tracker diffuse des données, je n'ai pas besoin d'ouvrir une connexion mysql et de les stocker. Nous pouvons les enregistrer sur redis et plus tard migrer vers mysql en utilisant un autre processus. Cela permettra d'éviter les connexion simultanée de plusieurs trackers à mysql.
    2. Je peux publier toutes ces données GPS et d'autres clients (javascript/Android) peuvent s'abonner en temps réel en utilisant une file d'attente de messages basée sur redis.
    3. Je peux déclencher des alertes en temps réel

7voto

EhevuTov Points 6010

Une chose est sûre, Redis n'est pas une base de données relationnelle. Si vous avez besoin d'un "JOIN" SQL, vous ne voudrez pas utiliser Redis, ni aucune autre base de données non relationnelle. Redis est cependant plus rapide que la plupart des bases de données relationnelles. Si vous ne faites que des requêtes par paires clé/valeur, alors vous voudrez utiliser Redis.

0 votes

Par exemple, serait-il bon d'utiliser redis pour les informations relatives à la session d'un utilisateur afin d'accéder plus rapidement au nom, à l'adresse électronique, à l'ID, etc.

0 votes

Je pense que oui. Le cabinet de Kyoto serait encore plus rapide pour cela, je pense.

5voto

Nick Points 662

Si votre MySQL peut fournir les performances dont vous avez besoin, conservez-le.

Voici un exemple d'utilisation de Redis comme base de données : http://redis4you.com/articles.php?id=009&name=NoSQL+database+design+exemple

et voici pourquoi parfois le SQL craint : http://redis4you.com/articles.php?id=004&name=Why+RDBMS+et+SQL+sont+difficiles ...

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