Redis®*: Premiers pas
Guide rapide pour débuter avec Redis
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution Redis cloud prête à l'emploi offrant de nombreux avantages, notamment :
- Interface web
Redis Commanderincluse.- Taille et transferts de messages illimités.
- Mises à jour simplifiées en un clic.
- Performance optimale et sécurité renforcée grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution d'hébergement Redis cloud de Stackhero !
Redis est une base de données en mémoire puissante et extrêmement rapide qui sert à de multiples fins. Elle peut agir comme un système de cache, un magasin clé-valeur, faciliter le tri des données en temps réel, et fonctionner comme une file d'attente de publication-abonnement et un système d'événements.
Redis a changé de licence et n'est plus open source. La communauté, les développeurs et les entreprises ont créé un fork de Redis appelé Valkey qui est un remplacement direct de Redis. Nous recommandons d'utiliser Valkey à la place de Redis.
Pour vous aider à démarrer, nous avons partagé quelques exemples de code démontrant comment se connecter à une instance Redis. Vous pouvez trouver ces exemples dans le dépôt GitHub suivant : https://github.com/stackhero-io/redisGettingStarted.
Utiliser Redis avec Ruby et Ruby on Rails
Configurer Redis comme système de cache pour Ruby on Rails
Pour commencer, vous pourriez vouloir installer la gem "redis". Vous pouvez le faire en exécutant :
bundle add redis
Ensuite, ouvrez le fichier config/environments/production.rb et ajoutez la ligne suivante :
config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }
Enfin, définissez la variable d'environnement REDIS_URL. Voici un modèle que vous pouvez utiliser en remplaçant par vos détails :
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Par défaut, le cache est activé uniquement en environnement de production. Si vous souhaitez tester le cache pendant le développement, vous pouvez modifier le fichier
config/environments/development.rb. Ajoutez la configuration ci-dessus et incluezconfig.action_controller.perform_caching = truepour activer le cache. Une façon simple de vérifier que le cache fonctionne est de démarrer une console Rails (avecbin/rails console) et de tester en écrivantRails.cache.write("foo", "bar").
Pour plus de détails sur la configuration de Redis comme système de cache pour Ruby on Rails, consultez la documentation officielle de Rails.
Configurer Redis pour Sidekiq
Sidekiq utilisera automatiquement le serveur Redis spécifié dans la variable d'environnement REDIS_URL.
Vous pouvez définir la variable d'environnement REDIS_URL avec vos informations spécifiques comme suit :
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Pour plus d'informations sur l'utilisation de Sidekiq avec Redis, consultez la documentation officielle de Sidekiq.
Configurer Redis pour Resque
Resque, tout comme Sidekiq, utilisera le serveur Redis défini dans la variable d'environnement REDIS_URL.
Définissez le REDIS_URL avec vos détails comme suit :
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Pour plus d'informations sur l'utilisation de Resque avec Redis, veuillez visiter la documentation officielle de Resque.
Gérer les sessions PHP avec Redis
Vous pouvez utiliser le code suivant pour stocker les sessions PHP sur Stackhero pour Redis :
<?php
// Analyser l'URL Redis
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');
// Configurer le gestionnaire de sessions
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");
// Démarrer la session
session_start();
?>
Améliorer la sécurité de Redis
Pour garantir la sécurité de votre instance Redis, il est crucial de mettre en œuvre certaines mesures de sécurité.
Chiffrer les communications avec Redis (TLS)
Par défaut, Redis ne chiffre pas les communications. Cependant, sur Stackhero, nous avons intégré le chiffrement TLS par défaut.
Pour en profiter, configurez votre client Redis pour utiliser le chiffrement TLS et connectez-vous à votre instance via le port <PORT_TLS>. Évitez d'utiliser <PORT_CLEAR>, car il ne chiffre pas les données.
Le meilleur, c'est qu'il n'y a rien d'autre à faire de votre côté, nous avons pris en charge la configuration complexe.
Protéger Redis contre les attaques par force brute
Votre instance Redis est sécurisée avec un mot de passe, que Stackhero définit automatiquement sur une valeur par défaut très sécurisée. Si vous choisissez de le changer, assurez-vous de sélectionner un mot de passe extrêmement complexe.
Redis est très efficace mais ne dispose pas de protections intégrées contre les attaques par force brute, permettant à un attaquant de tester potentiellement jusqu'à 150 000 combinaisons de mots de passe par seconde.
Pour contrer ce risque, nous imposons une longueur minimale de mot de passe de 16 caractères (offrant environ 4.5231285e+74 combinaisons). Par défaut, nous utilisons un mot de passe de 64 caractères (offrant environ 9.61963e+111 combinaisons).
Pour une sécurité accrue et pour réduire considérablement le risque d'attaques par force brute, il est fortement recommandé de configurer les paramètres de pare-feu de Stackhero (disponibles sous l'onglet "Firewall") pour limiter les connexions strictement à vos adresses IP. Cette étape est essentielle pour renforcer votre posture de sécurité.