Familiarisez-vous avec Redis et apprenez à optimiser vos applications Node avec ce puissant magasin de données.
Lorsque vous créez une application Web, vous devez vous assurer qu'elle est évolutive et efficace. Pour ce faire, vous devrez prendre en compte plusieurs principes et concepts.
Redis est l'une des nombreuses technologies qui peuvent aider à améliorer les performances de vos applications Web. Il offre des fonctionnalités remarquables que vous pouvez utiliser pour améliorer les performances de n'importe quelle application Web.
Alors, qu'est-ce que Redis exactement et comment pouvez-vous commencer à l'utiliser avec vos applications Web Node.js ?
Qu'est-ce que Redis et quand l'utiliser?
Redis est un magasin de données open source, en mémoire et clé-valeur. Il s'agit d'une technologie flexible qui peut agir comme une file d'attente de travail, une base de données, un cache, un gestionnaire de session, un courtier de messages, etc.
La combinaison de la vitesse, de la polyvalence et de la facilité d'utilisation de Redis en fait un outil très précieux dans l'écosystème des développeurs de logiciels.
Quand devriez-vous utiliser Redis ?
Redis est bien adapté à de nombreuses tâches, mais vous devez veiller à ne l'utiliser que lorsque cela a du sens.
Vous devriez envisager d'utiliser Redis dans ces scénarios :
- Mise en cache: Redis est le moyen le plus populaire d'implémenter un cache pour aider à prévenir la charge sur les bases de données et améliorer les performances globales.
- Gestion des sessions: Le stockage et la gestion des sessions utilisateur pour l'authentification et la gestion de l'état sont très simples avec Redis.
- Stockage temporaire des données: Redis vous permet de stocker des données et de les supprimer automatiquement après une période de temps spécifique. Cela en fait un bon outil pour stocker des données temporaires telles que Jetons Web JSON, files d'attente de travaux, etc.
D'autres cas pour lesquels vous devriez envisager d'utiliser Redis incluent la mise en œuvre d'un courtier de messages, l'optimisation opérations de base de données, et même stocker et accéder efficacement à des structures de données telles que des listes, des ensembles et hachages.
Comment utiliser Redis avec Node.js
Node.js est une technologie populaire pour créer des applications côté serveur efficaces et évolutives. Vous pouvez l'utiliser conjointement avec des technologies de support telles que Redis pour obtenir des performances et une évolutivité élevées.
Redis prend en charge plusieurs langues. Tu peux l'utiliser pour le stockage de données en PHP et il existe d'excellents clients Redis pour Golang. Les deux clients Redis les plus populaires pour Node.js sont nœud-redis et ioredis.
Les deux forfaits sont disponibles via npm et sont faciles à utiliser. La principale différence est que nœud-redis est le client officiel, tandis que la communauté recommande ioredis.
Connexion à Redis depuis Node.js
Pour commencer, vous devez avoir Redis installé sur votre ordinateur et un environnement de développement Node.js configuré. Consultez le guide d'installation sur Redis.io pour installer Redis sur Linux, macOS et Windows.
Vous devez installer votre SDK client Redis préféré dans votre projet pour pouvoir vous connecter à Redis. Selon votre préférence (nous utiliserons nœud-redis), exécutez l'une des commandes ci-dessous pour installer le client Redis :
npm installer redis --save
npm installer ioredis --save
La première commande installe nœud-redis, tandis que le second installe ioredis.
Pour configurer votre client nouvellement installé, vous devez vous assurer que Redis est en cours d'exécution. Vous pouvez le faire en commençant simplement redis-cli dans votre terminal :
Le ping commande envoie un ping au serveur pour confirmer qu'il est en cours d'exécution, et un PONG réponse dans la CLI signifie que le serveur fonctionne correctement. Créez maintenant un redis.js dans votre projet Node et écrivez-y le code suivant pour configurer Redis :
constante redis = exiger("redis")
// initialise en utilisant la configuration par défaut
constante RedisClient = redis.createClient()constante connectRedis = asynchrone () => {
// se connecte à redis
attendre RedisClient.connect()// gérer l'erreur
RedisClient.on('erreur', (erreur) => {
console.erreur(`Une erreur s'est produite avec Redis: ${err}`)
})
console.enregistrer('Redis s'est connecté avec succès...')
}
Le code ci-dessus initialise un nouveau client Redis dans l'application. Le créerClient La fonction du package redis vous permet de créer un client en utilisant vos paramètres spécifiés.
Vous pouvez spécifier votre hôte, port, nom d'utilisateur, mot de passe ou chaîne de connexion, ou utiliser les valeurs par défaut. Par exemple, nœud-redis commencera à fonctionner sur localhost, sur le port 6379, par défaut.
Voici quelques façons d'utiliser le créerClient fonction:
// en utilisant la chaîne de connexion
constante RedisClient = redis.createClient("rediss://127.0.0.1:6379")
// en utilisant l'objet paramètre
constante RedisClient = redis.createClient({
prise: {
héberger: "127.0.0.1",
port: "6379"
},
nom d'utilisateur: "votre nom d'utilisateur redis",
mot de passe: "votre mot de passe"
})
Utilisez des instances Redis sécurisées en production. Lorsque c'est le cas, soit vous disposez d'un URL string pour la connexion ou utilisez les paramètres indiqués ci-dessus. Quel que soit le cas, n'oubliez pas de garder les informations d'identification hors du code et d'utiliser à la place des variables d'environnement.
Exécution d'opérations Redis de base dans Node.js
Le code suivant se connecte à Redis en utilisant le connectRedis fonction ci-dessus et illustre certaines opérations de base que vous pouvez effectuer dans Redis à partir de vos applications Node.
constante testRedis = asynchrone () => {
attendre connectRedis()// Fixe et récupère une valeur
attendre RedisClient.set("nom", "Timy")
constante obtenirCommande = attendre RedisClient.get("nom")
console.log (getCommand)// Supprimer les valeurs immédiatement ou programmer leur expiration
// en quelques secondes
attendre RedisClient.del("nom");
attendre RedisClient.setEx("emplacement", 60, "Lagos")// Pousser au début ou à la fin d'une liste
attendre RedisClient.lPush("jours", "lundi")
attendre RedisClient.rPush("jours", "Mardi")
attendre RedisClient.lPush("jours", "Mercredi")
constante tableauxjours = attendre RedisClient.lPlage("jours", 0, -1)
// imprime [ 'mercredi', 'lundi', 'mardi' ]
console.log (tablejours)// Supprime un élément de la fin ou du début d'une liste
attendre RedisClient.rPop("jours")
attendre RedisClient.lPop("jours")
constante newDaysArray = attendre RedisClient.lPlage("jours", 0, -1)
// imprime [ 'lundi' ]
console.log (nouveauTableauJour)
}
testRedis()
Remarquez l'utilisation de asynchrone et attendre ici. En effet, toutes les fonctions s'exécutent de manière asynchrone et renvoient des promesses, donc si vous avez besoin de leurs résultats immédiatement, il est important de attendre eux.
Le code ci-dessus ne montre que certaines opérations de base que vous pouvez effectuer dans Redis à partir d'une application Node.js. Il existe de nombreuses autres commandes et concepts qui valent la peine d'être examinés.
Le Commandes Redis section dans le fichier README trouvé sur node-redisGitHub Le référentiel est un bon endroit pour trouver toutes les autres commandes et ce qu'elles font.
Utiliser Redis pour créer des applications efficaces
Exploiter la puissance de Redis vous permet, en tant que développeur, de créer des applications côté serveur hautement efficaces. Avec le stockage de données en mémoire de Redis et les structures et commandes de données étendues, les applications peuvent réaliser des optimisations de performances remarquables.
Vous devriez certainement envisager d'intégrer Redis dans votre prochaine application Node.js pour booster les performances de votre application et offrir une meilleure expérience utilisateur.