introduction
Redis est un magasin clé-valeur en mémoire, reconnu pour sa flexibilité, ses performances et sa prise en charge linguistique étendue. Il est couramment utilisé comme base de données, cache et courtier de messages et prend en charge un large éventail de structures de données.
Ce tutoriel explique comment installer et configurer Redis à partir du code source sur un serveur Ubuntu 18.04. Veuillez noter que Redis peut être installé en moins d’étapes en le téléchargeant et en l’installant via les référentiels officiels Ubuntu. Pour installer Redis à l’aide de cette méthode, veuillez consulter notre guide à l’adresse Comment installer et Redis sécurisé sur Ubuntu 18.04.
Conditions préalables
Pour compléter ce guide, vous devez avoir accès à un serveur Ubuntu 18.04 configuré en suivant les étapes https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-18-04. guide], y compris un utilisateur non root avec les privilèges + sudo +
et un pare-feu.
Lorsque vous êtes prêt à commencer, connectez-vous à votre serveur Ubuntu 18.04 avec votre utilisateur + sudo +
et continuez ci-dessous.
Étape 1 - Installation des dépendances de construction et de test
Pour obtenir la dernière version de Redis, nous allons compiler et installer le logiciel à partir des sources. Avant de télécharger le code source, vous devez cependant satisfaire les dépendances de construction afin de pouvoir compiler le logiciel.
Pour ce faire, installez le méta-paquet + build-essential +
à partir des référentiels Ubuntu. De plus, téléchargez le package + tcl +
que vous pouvez utiliser pour tester les fichiers binaires.
Mettez à jour votre cache de paquet local + apt +
et installez les dépendances en tapant:
sudo apt update
sudo apt install build-essential tcl
Avec cela, toutes les dépendances de construction et de test sont installées sur votre serveur et vous pouvez commencer le processus d’installation de Redis lui-même.
Étape 2 - Télécharger, compiler et installer Redis
Après avoir installé ses dépendances, vous êtes prêt à installer Redis en téléchargeant, en compilant, puis en construisant le code source. Comme vous n’avez pas besoin de conserver le code source Redis à long terme (vous pouvez toujours le télécharger à nouveau), téléchargez le code source dans votre répertoire + / tmp +
.
Commencez par naviguer dans ce répertoire:
cd /tmp
Ensuite, utilisez + curl +
pour télécharger la dernière version stable de Redis. La dernière version se trouve toujours à l’adresse a URL de téléchargement stable:
curl -O http://download.redis.io/redis-stable.tar.gz
Décompressez l’archive en tapant:
tar xzvf redis-stable.tar.gz
Puis déplacez-vous dans la structure de répertoire source Redis qui vient d’être extraite:
cd redis-stable
Compilez les binaires Redis en tapant:
make
Une fois la compilation terminée, exécutez la suite de tests pour vous assurer que tout a été construit correctement:
make test
Cela prend généralement quelques minutes pour terminer. Une fois le test terminé, installez les fichiers binaires sur le système en tapant:
sudo make install
C’est tout pour l’installation de Redis et vous êtes maintenant prêt à commencer à le configurer. Pour ce faire, vous devrez créer un répertoire de configuration. Le répertoire de configuration de Redis est classiquement situé dans le répertoire + / etc / +
, et vous pouvez le créer ici en tapant:
sudo mkdir /etc/redis
Ensuite, copiez le fichier de configuration exemple Redis fourni avec l’archive source Redis:
sudo cp /tmp/redis-stable/redis.conf /etc/redis
Ouvrez le fichier avec votre éditeur de texte préféré pour apporter quelques modifications à la configuration:
sudo nano /etc/redis/redis.conf
Dans le fichier, recherchez la directive + supervised +
. Cette directive vous permet de déclarer un système init pour gérer Redis en tant que service, ce qui vous permet de mieux contrôler son fonctionnement. La directive + supervised +
est définie par défaut sur + no +
. Puisque vous utilisez Ubuntu, qui utilise le système systemd init, remplacez-le par `+ systemd +
:
/etc/redis/redis.conf
. . .
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised
. . .
Ensuite, trouvez la directive + dir +
. Cette option spécifie le répertoire que Redis utilisera pour vider les données persistantes. Vous devez changer cela en un emplacement où Redis aura des autorisations en écriture et qui ne sera pas visible par les utilisateurs normaux.
Utilisez le répertoire + / var / lib / redis +
pour cela; vous allez créer ce répertoire et ajuster ses autorisations ultérieurement à l’étape 4:
/etc/redis/redis.conf
. . .
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir
. . .
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ce sont toutes les modifications que vous devez apporter au fichier de configuration Redis, mais il vous reste encore quelques étapes à franchir - telles que la configuration de Redis pour qu’il s’exécute en tant que service et la création de son utilisateur et de son groupe dédiés - avant de commencer à utiliser il.
Étape 3 - Créer un fichier unité Redis systemd
Afin de mieux contrôler votre gestion de Redis, vous pouvez créer un fichier unité systemd qui lui permettra de fonctionner en tant que service systemd. Cela aura également l’avantage de faciliter le démarrage de Redis à chaque démarrage du serveur.
Créez et ouvrez le fichier + / etc / systemd / system / redis.service +
pour commencer:
sudo nano /etc/systemd/system/redis.service
Une fois à l’intérieur, commencez la section + [Unit] +
en ajoutant une description du service et en définissant une exigence selon laquelle la mise en réseau doit être disponible avant son démarrage:
/etc/systemd/system/redis.service
La section + [Service] +
vous permet de spécifier le comportement du service. Pour des raisons de sécurité, vous ne devez pas exécuter ce service en tant que * racine *. Vous devriez plutôt utiliser un utilisateur et un groupe dédiés et, par souci de simplicité, vous pouvez appeler ces deux * redis *. Vous allez créer ces momentanément.
Pour démarrer le service, il vous suffit d’appeler le binaire + redis-server +
et de le pointer vers votre configuration. Pour l’arrêter, utilisez la commande Redis + shutdown +
, que vous pouvez exécuter avec le binaire + redis-cli +
. De plus, comme il est souhaitable que Redis récupère des échecs chaque fois que cela est possible, définissez la directive + Restart +
sur + toujours +
:
/etc/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target
Enfin, ajoutez une section + [Install] +
. Définissez la cible systemd à laquelle le service devrait s’attacher s’il est activé (ce qui signifie qu’il est configuré pour démarrer au démarrage):
/etc/systemd/system/redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
Enregistrez et fermez le fichier lorsque vous avez terminé.
Le fichier unité Redis systemd est tout défini. Cependant, avant de pouvoir l’utiliser, vous devez créer l’utilisateur et le groupe dédiés que vous avez référencés dans la section + [Service] +
et leur accorder les autorisations dont ils ont besoin pour fonctionner.
Étape 4 - Création de l’utilisateur, du groupe et des répertoires Redis
La dernière chose à faire avant de démarrer et de tester Redis consiste à créer l’utilisateur, le groupe et le répertoire référencés dans les deux fichiers précédents.
Commencez par créer l’utilisateur et le groupe * redis *. Vous pouvez le faire en une seule commande en tapant:
sudo adduser --system --group --no-create-home redis
Créez ensuite le répertoire + / var / lib / redis +
(référencé dans le fichier + redis.conf +
créé à l’étape 2) en tapant:
sudo mkdir /var/lib/redis
Attribuez à l’utilisateur et au groupe + redis +
la propriété de ce répertoire:
sudo chown redis:redis /var/lib/redis
Enfin, ajustez les autorisations afin que les utilisateurs normaux ne puissent pas accéder à cet emplacement:
sudo chmod 770 /var/lib/redis
Vous avez mis en place tous les composants dont Redis a besoin. Vous êtes maintenant prêt à démarrer le service Redis et à tester ses fonctionnalités.
Étape 5 - Démarrer et tester Redis
Démarrez le service systemd en tapant:
sudo systemctl start redis
Vérifiez que le service n’a pas d’erreur en exécutant:
sudo systemctl status redis
Cela produira une sortie similaire à celle-ci:
Output● redis.service - Redis In-Memory Data Store
Loaded: loaded (/etc/systemd/system/redis.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2018-05-29 17:49:11 UTC; 4s ago
Main PID: 12720 (redis-server)
Tasks: 4 (limit: 4704)
CGroup: /system.slice/redis.service
└─12720 /usr/local/bin/redis-server 127.0.0.1:6379
. . .
Pour vérifier que votre service fonctionne correctement, connectez-vous au serveur Redis à l’aide du client en ligne de commande:
redis-cli
Dans l’invite suivante, testez la connectivité en tapant:
ping
Cela retournera:
OutputPONG
Ensuite, vérifiez que vous pouvez définir les clés en tapant:
set test "It's working!"
OutputOK
Récupérez la valeur + test +
en tapant:
get test
Vous devriez pouvoir récupérer la valeur que vous avez stockée:
Output"It's working!"
Après avoir confirmé que vous pouvez récupérer la valeur, quittez l’invite Redis pour revenir au shell:
exit
Enfin, nous vérifierons si Redis est capable de conserver des données même après leur arrêt ou leur redémarrage. Pour ce faire, redémarrez d’abord l’instance Redis:
sudo systemctl restart redis
Ensuite, reconnectez-vous au client et confirmez que votre valeur de test est toujours disponible:
redis-cli
get test
La valeur de votre clé doit toujours être accessible:
Output"It's working!"
Sortez dans la coquille à nouveau lorsque vous avez terminé:
exit
En supposant que tous ces tests fonctionnent et que vous souhaitez démarrer Redis automatiquement au démarrage de votre serveur, activez le service systemd:
sudo systemctl enable redis
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
Avec cela, votre installation Redis est entièrement opérationnelle.
Conclusion
Dans ce didacticiel, vous avez installé, compilé et construit Redis à partir de son code source, vous l’avez configuré pour s’exécuter en tant que service systemd et vous avez validé le bon fonctionnement de votre installation Redis. Comme prochaine étape, nous vous encourageons * vivement * à sécuriser votre installation Redis en suivant notre guide à l’adresse https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on- ubuntu-18-04 [Comment sécuriser votre installation Redis sur Ubuntu 18.04].