Redis

Stockage de données en mémoire rapide et open source pour une utilisation en tant que base de données, de cache, de courtier de messages et de file d'attente.

Qu'est-ce que Redis ?

Redis est un système de stockage de données clé-valeur en mémoire, open source et rapide, pour une utilisation en tant que base de données, de cache, de courtier de messages et de file d'attente. Il offre des temps de réponse inférieurs à la milliseconde permettant des millions de demandes par seconde pour des applications en temps réel dans les domaines du jeu, de la technologie publicitaire, des services financiers, des soins de santé et de l'Internet des objets. Redis est un choix populaire pour la mise en cache, la gestion de session, l'analyse en temps réel, le géospatial, le chat/la messagerie, le streaming multimédia et les classements de jeux.

Comment fonctionne Redis ?

Toutes les données Redis résident en mémoire, contrairement aux bases de données qui stockent des données sur disque ou SSD. Etant donné qu'ils n'ont pas besoin d'accéder à des disques, les magasins de données en mémoire comme Redis évitent les délais de recherche et peuvent accéder aux données en quelques microsecondes. Redis propose des structures de données polyvalentes, une haute disponibilité, la géospatiale, les scripts Lua, les transactions, la persistance sur disque et la prise en charge des clusters, ce qui simplifie la création d'applications à l'échelle en temps réel sur Internet.

Amazon ElastiCache for Redis

Redis entièrement géré avec cryptage, redimensionnement des clusters en ligne, haute disponibilité et conformité. En savoir plus >>

Avantages de Redis

Stockage de données en mémoire

Toutes les données Redis sont situées dans la mémoire principale du serveur, contrairement aux bases de données comme PostgreSQL, Cassandra, MongoDB ou autres, qui stockent la plupart de leurs données sur un disque ou un SSD. Contrairement aux bases de données traditionnelles sur disque, où la plupart des opérations nécessitent un aller-retour au disque, les stockages de données en mémoire comme Redis ne subissent pas ce désavantage. Ils peuvent donc prendre en charge beaucoup plus d'opérations et offrir des temps de réponse plus rapides. Le résultat est visible : une performance exceptionnellement rapide avec des opérations d'écriture et de lecture qui prennent généralement moins d'une milliseconde et la prise en charge de millions d'opérations par seconde.

Structures de données flexibles

Contrairement aux stockages de données à valeur de clé simple qui offrent des structures de données limitées, Redis vous propose une large variété de structures de données pour répondre aux besoins de votre application. Les types de données Redis sont les suivants :

  • Chaînes : données de texte ou binaires jusqu’à 512 Mo
  • Listes : une collection de chaînes dans l’ordre où elles sont ajoutées
  • Ensembles : une collection non ordonnée de chaînes avec la possibilité de croiser, unifier et différencier d’autres types d’ensembles
  • Ensembles ordonnés : ensembles ordonnés selon une valeur
  • Hachages : une structure de données pour le stockage de listes de champs et de valeurs
  • Bitmaps : un type de données permettant des opérations au niveau du bit
  • HyperLogLogs : une structure de données basée sur la probabilité permettant d’estimer les éléments uniques d’un ensemble de données

Simplicité et facilité d'utilisation

Redis simplifie votre code en vous permettant d'écrire peu de lignes pour le stockage et l'utilisation de vos données, ainsi que leur accès, dans vos applications. Par exemple, si votre application a stocké des données dans une HashMap et que vous souhaitez stocker ces données dans un stockage de données, il vous suffit d'utiliser la structure de données de hachage de Redis pour stocker les données. Une tâche similaire sur un stockage de données sans structure de données de hachage nécessiterait beaucoup de lignes de code pour la conversion d'un format à un autre. Redis offre des structures de données natives, ainsi que de nombreuses options pour manipuler vos données et interagir avec elles. Plus d'une centaine de clients open source sont mis à la disposition des développeurs Redis. Les langages pris en charge comprennent Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go, etc.

Réplication et persistance

Redis emploie une architecture principal-réplica et prend en charge la réplication asynchrone qui permet de répliquer les données sur plusieurs serveurs réplicas. Cela offre de meilleures performances de lecture (car les requêtes peuvent être réparties entre les serveurs) et une meilleure récupération lorsque le serveur principal subit une panne. En ce qui concerne la persistance, Redis prend en charge les sauvegardes à un instant dans le passé (en copiant l’ensemble de données Redis sur le disque).

Disponibilité et persistance élevées

Redis offre une architecture principal-réplica dans un principal à un nœud ou une topologie en cluster. Cela vous permet de concevoir des solutions hautement disponibles fournissant une performance et une fiabilité constantes. Lorsque vous avez besoin d'ajuster la taille de votre cluster, différentes options pour mettre à l'échelle à la hausse ou à la basse sont également disponibles. Ainsi, votre cluster évolue en suivant vos demandes.

Extensibilité

Redis est un projet open source soutenu par une communauté dynamique. Il n'y a aucun verrou propriétaire ou technologique, car Redis est basé sur des normes ouvertes, prend en charge des formats de données ouverts et propose un ensemble complet de clients.

Mise en cache

Redis est un outil de choix pour mettre en œuvre un cache en mémoire hautement disponible afin de réduire la latence d'accès aux données, d'augmenter le débit et d'alléger la charge de votre base de données et de votre application relationnelle ou NoSQL. Redis peut traiter des éléments fréquemment demandés en offrant des temps de réponse inférieurs à la milliseconde et vous permet de mettre à l'échelle facilement pour répondre à des charges plus élevées sans accroître le backend le plus coûteux. La mise en cache de requêtes de base de données, de sessions persistantes, de pages Web et d'objets souvent utilisés comme des images, des fichiers et des métadonnées sont les exemples communs de la mise en cache avec Redis.

Messagerie, instantanée ou non, et files d'attente

Redis prend en charge le pub/sub avec la correspondance de modèles et une variété de structures de données telles que des listes, des ensembles ordonnés et des hachages. Cela permet à Redis de prendre en charge les salles de conversation ultra performantes, les flux de commentaire en temps réel, les flux des réseaux sociaux et l'intercommunication entre serveurs. La structure de données des listes Redis facilite la mise en place d'une file d'attente légère. Les listes offrent des opérations atomiques, ainsi que des capacités de blocage, ce qui les rend compatibles avec de nombreuses applications nécessitant un courtier de messages fiable ou une liste circulaire.

Classements de jeux

Les développeurs de jeux choisissent souvent Redis lorsqu'ils veulent concevoir des classements en temps réel. Il suffit d'utiliser la structure de données des ensembles triés Redis qui assure l'unicité des éléments tout en veillant à ce que la liste reste triée en fonction des scores de l’utilisateur. Pour créer une liste de classement en temps réel, il suffit de mettre à jour le score d'un utilisateur chaque fois qu'il change. Vous pouvez également utiliser les ensembles triés pour gérer des données en séries chronologiques en utilisant des horodatages comme score.

Magasin de sessions

Les développeurs d'application choisissent souvent Redis comme stockage de données en mémoire avec une disponibilité et une persistance élevées pour stocker et gérer les données de session pour des applications à l'échelle d'Internet. Redis offre une latence inférieure à une milliseconde, ainsi que l’évolutivité et la résilience nécessaire pour gérer des données de session telles que des profils utilisateur, des informations d'identification, un statut de session et une personnalisation spécifique à l'utilisateur.

Streaming multimédia riche

Redis offre un stockage des données rapide et en mémoire pour alimenter les cas d'utilisation de streaming en direct. Redis peut être utilisé pour stocker des métadonnées du profil et des historiques de visionnage des utilisateurs, des tokens/informations d'authentification pour des millions d'utilisateurs et des fichiers manifestes pour permettre aux CDN de diffuser des vidéos à des millions d'utilisateurs d'ordinateur et de téléphone, en même temps.

Géolocalisation

Redis offre des structures et des opérateurs de données en mémoire conçus dans un but pour gérer les données géospatiales en temps réel à grande échelle et à vitesse élevée. Les commandes comme GEOADD, GEODIST, GEORADIUS et GEORADIUSBYMEMBER pour stocker, traiter et analyser les données géospatiales en temps réel rendent la géolocalisation facile et rapide avec Redis. Vous pouvez utiliser Redis pour ajouter des fonctions basées sur la géolocalisation à vos applications, telles que le temps et la distance du trajet ainsi que les points d'intérêt.

Machine Learning

Les applications modernes orientées données nécessitent du Machine Learning pour traiter rapidement du volume, de la variété et de la vitesse importants des données et automatiser la prise de décision. Pour des cas d'utilisation comme la détection de fraude dans les jeux et les services financiers, les enchères en temps réel en technologie publicitaire et le jumelage pour les rencontres amoureuses et le covoiturage, la capacité de traiter les données en temps réel et de prendre les décisions en quelques dizaines de millisecondes est de la plus haute importance. Redis vous offre un stockage de données en mémoire et rapide qui conçoit, entraîne et déploie rapidement des modèles de Machine Learning

Les analyses en temps réel

Redis peut être utilisé avec des solutions de streaming telles qu'Apache Kafka et Amazon Kinesis comme stockage de données en mémoire pour intégrer, traiter et analyser des données en temps réel avec une latence inférieure à la milliseconde. Redis est un choix idéal pour les cas d'utilisation d'analyse en temps réel, tels que les analyses des réseaux sociaux, le ciblage publicitaire, la personnalisation et l'IoT.

Prise en charge des langages

Redis prend en charge la plupart des langages et des protocoles de programmation de premier plan, notamment :

Python

Java

PHP

Redis entièrement géré sur AWS

Amazon offre un service Redis entièrement géré, Amazon ElastiCache for Redis. Il est possible de l'essayer gratuitement avec l'offre gratuite d'AWS. Amazon ElastiCache for Redis facilite la configuration, l'exploitation et le dimensionnement des déploiements Redis dans le cloud. Avec Amazon ElastiCache, vous pouvez réaliser des déploiements Redis à l'échelle d'Internet en quelques minutes, avec une capacité matérielle économique et dimensionnable.
Démarrez avec l'offre gratuite d'Amazon ElastiCache for Redis en trois étapes faciles :
Amazon ElastiCache for Redis

Inscrivez-vous

En savoir plus sur Amazon ElastiCache pour Redis

Apprendre avec des tutoriels simples

Découvrez comment créer un cluster Redis.
Démarrez avec ElastiCache for Redis

Commencer la conception

Commencez la conception avec l'aide du guide de l'utilisateur.