Redis est un magasin de structure de données clé/valeur en mémoire open source rapide. Redis propose un ensemble de structures de données en mémoire polyvalentes qui vous permet de créer facilement un large éventail d'applications personnalisées. Les principaux cas d'utilisation de Redis comprennent la mise en cache, la gestion des sessions, la fonctionnalité pub/sub et les classements. Il s'agit du magasin clé/valeur le plus populaire à l'heure actuelle. Il est distribué sous licence BSD, écrit en code C optimisé et prend en charge plusieurs langages de développement. Redis est l'acronyme de REmote DIctionary Server.

Sa vitesse et sa facilité d'utilisation en font une solution de choix pour toutes les applications (web, mobiles, jeux, technologies publicitaires et Internet des objets) qui nécessitent les meilleures performances. AWS assure la prise en charge de Redis via un service de base de données entièrement géré et optimisé nommé Amazon ElastiCache for Redis, et permet également aux clients d'exécuter un système Redis autogéré sur AWS EC2.

Amazon EC2 Container Service

Mise en route
Benefit_ElastiCache_Performance

Toutes les données Redis résident dans la mémoire principale de leur serveur, contrairement à la plupart des systèmes de gestion de base de données qui stockent les données sur un disque ou sur des disques SSD. En éliminant le besoin d'accéder à des disques, les bases de données en mémoire telles que Redis évitent les délais de recherche et peuvent accéder aux données à l'aide d'algorithmes plus simples qui utilisent moins d'instructions de CPU. L'exécution des opérations classiques prend moins d'une milliseconde.

Benefit_ElastiCache_data_structure

Redis permet aux utilisateurs de stocker des clés qui sont mappées à différents types de données. Le type de données fondamental est une chaîne, qui peut être composée de texte ou de données binaires d'une taille maximale de 512 Mo. Redis prend également en charge les listes de chaînes dans l'ordre dans lequel elles ont été ajoutées ; les ensembles de chaînes non triés ; les ensembles triés classés selon un score ; les hachages qui stockent une liste de champs et de valeurs ; et les hyperloglogs pour compter les éléments uniques d'un ensemble de données. Presque tous les types de données peuvent être enregistrés en mémoire à l'aide de Redis.

Benefit_ElastiCache_easeofuse

Redis propose un certain nombre d'outils qui accélèrent et simplifient le développement et les opérations, notamment la fonctionnalité Pub/Sub qui permet de publier des messages sur des canaux, qui sont diffusés à des abonnés (idéal pour les systèmes de discussion et de messagerie) ; les clés TTL qui peuvent avoir une durée de vie déterminée, après quoi elles se suppriment elles-mêmes (utile pour éviter que la base de données soit remplie de données superflues) ; les compteurs atomiques qui s'assurent que les conditions de concurrence ne créent pas de résultats incohérents ; et Lua, un langage de script puissant mais léger.

Benefit_ElastiCache_replication

Redis emploie une architecture maître-esclave et prend en charge la réplication asynchrone qui permet de répliquer les données sur plusieurs serveurs esclaves. Cela peut offrir 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 primaire subit une panne.

Pour assurer la durabilité, Redis prend en charge les instantanés ponctuels (copie de l'ensemble de données Redis sur le disque) et la création d'un fichierAppend Only File (AOF) pour stocker sur le disque chaque changement de données à mesure qu'il est écrit. Chaque méthode permet une restauration rapide des données Redis en cas de panne.

Benefit_ElastiCache_languageSupport

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.

Lorsqu'il est placé « devant » une autre base de données, le système Redis crée un cache en mémoire hautement performant afin de réduire la latence d'accès, d'augmenter le débit et d'alléger la charge d'une base de données relationnelle ou NoSQL.

Redis convient parfaitement aux tâches de gestion de session. Utilisez simplement Redis comme un magasin clé/valeur rapide avec une durée de vie (TTL) appropriée sur des clés de session pour gérer vos informations de session. La gestion de session est couramment requise pour les applications en ligne, notamment les jeux, les sites d'e-commerce et les plates-formes de réseaux sociaux.

Grâce à la structure de données des ensembles triés Redis, les éléments sont conservés dans une liste et classés selon leurs scores. Cela facilite la création de classements dynamiques pour présenter le gagnant d'un jeu, ou la publication des messages les plus appréciés ou tout élément dont vous souhaitez présenter le gagnant.

Redis peut mesurer et, si nécessaire, limiter le taux d'événements. En utilisant un compteur Redis associé à la clé API d'un client, vous pouvez compter le nombre de demandes d'accès pendant une certaine période et prendre des mesures si une limite est dépassée. Les limiteurs de vitesse sont couramment utilisés pour limiter le nombre de messages publiés sur un forum, limiter l'utilisation des ressources et contenir l'impact des expéditeurs de courrier indésirable.

La structure de données des listes Redis facilite la mise en place d'une file d'attente légère et persistante. 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 agent de messages fiable ou une liste circulaire.

Redis prend en charge la norme PUB/SUB avec correspondance de modèle. Cela permet à Redis de prendre en charge les salles de conversation ultra performantes, les flux de commentaire en temps réel et l'intercommunication entre serveurs. Vous pouvez également utiliser la norme PUB/SUB pour déclencher des actions basées sur des événements publiés.

Amazon ElastiCache for Redis est un service de structure de données en mémoire entièrement géré compatible avec Redis.