Maison > Article > base de données > Comment installer le serveur Redis sur CentOS 7
Redis est un logiciel de stockage de données multiplateforme open source écrit en ANSI C. Redis peut prendre en charge Lua, C, Java, Python, Perl, PHP et de nombreux autres langages.
redis Il n'existe actuellement aucun package d'installation officiel de RPM Nous devons compiler à partir du code source, et pour compiler, nous devons installer Make et GCC.
Si vous n'avez pas installé GCC et Make, utilisez yum pour les installer.
yum install gcc make
Téléchargez le package compressé tar depuis le site officiel.
curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz
Décompressez.
tar zxvf redis-3.0.4.tar.gz
Entrez le répertoire décompressé.
cd redis-3.0.4
Utilisez Make pour compiler les fichiers sources.
make
Entrez le répertoire du fichier source.
cd src
Copiez le serveur et le client Redis dans /usr/local/bin.
cp redis-server redis-cli /usr/local/bin
Il est préférable de copier sentinelle, benchmark et vérifier.
cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin
Créez le dossier de configuration Redis.
mkdir /etc/redis
Créez un répertoire valide pour enregistrer les données sous /var/lib/redis
mkdir -p /var/lib/redis/6379
La configuration est requise pour que Redis fonctionnent correctement Certains paramètres du noyau.
Configurez vm.overcommit_memory sur 1, ce qui peut éviter que les données soient tronquées. Voir ici pour plus de détails.
sysctl -w vm.overcommit_memory=1
Modifiez le nombre maximum de connexions en retard pour dépasser la valeur tcp-backlog dans redis.conf, qui est la valeur par défaut de 511. Plus d’informations sur le tunneling réseau IP basé sur sysctl sont disponibles sur kernel.org.
sysctl -w net.core.somaxconn=512
Annulez la prise en charge des pages transparentes énormes, car cela entraînera des retards et des problèmes d'accès à la mémoire lors de l'utilisation de Redis.
echo never > /sys/kernel/mm/transparent_hugepage/enabled
redis.conf est le fichier de configuration de redis Cependant, vous verrez que le nom de ce fichier est 6379.conf, et ce numéro est. ce que Redis surveille. Pour exécuter plusieurs instances Redis, le schéma de dénomination suivant est recommandé.
Copiez l'exemple redis.conf dans /etc/redis/6379.conf.
cp redis.conf /etc/redis/6379.conf
Maintenant, éditez ce fichier et configurez les paramètres.
vi /etc/redis/6379.conf
Définissez démonize sur non, systemd en a besoin pour s'exécuter au premier plan, sinon redis raccrochera soudainement.
daemonize no
Définissez le fichier pid sur /var/run/redis_6379.pid.
pidfile /var/run/redis_6379.pid
Si vous ne prévoyez pas d'utiliser le port par défaut, vous pouvez le modifier.
port 6379
Définissez le niveau de journalisation.
loglevel notice
Modifiez le chemin du fichier journal.
logfile /var/log/redis_6379.log
Définissez le répertoire sur /var/lib/redis/6379
dir /var/lib/redis/6379
Ce qui suit en sont quelques-unes. Une opération qui peut améliorer la sécurité.
Étant donné que le programme client et le programme côté serveur s'exécutent généralement sur la même machine, il n'est pas nécessaire d'écouter la socket réseau. Si cela est similaire à votre cas d'utilisation, vous pouvez utiliser un socket Unix au lieu d'un socket réseau. Pour ce faire, vous devez configurer le port sur 0, puis configurer les options suivantes pour activer le socket Unix.
Définissez le fichier socket du socket Unix.
unixsocket /tmp/redis.sock
Limiter les autorisations des fichiers socket.
unixsocketperm 700
Maintenant, afin de rendre redis-cli accessible, le paramètre -s doit être utilisé pour pointer vers le fichier socket.
redis-cli -s /tmp/redis.sock
Vous aurez peut-être besoin d'un accès à distance, si c'est le cas, vous devez définir un mot de passe afin qu'il soit requis avant chaque opération.
requirepass "bTFBx1NYYWRMTUEyNHhsCg"
Imaginez le résultat de la commande suivante. Oui, cela affichera la configuration du serveur, vous devez donc refuser cet accès autant que possible.
CONFIG GET *
Vous pouvez utiliser la commande "rename-command" pour limiter ou interdire l'utilisation de cette commande ou d'autres. Vous devez fournir un nom de commande et un autre nom. Pour rendre plus sûre l'interdiction d'une commande, son nom alternatif doit être défini sur une chaîne vide afin que personne ne puisse deviner le nom de la commande.
rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
Utilisez un mot de passe pour accéder via le socket Unix et modifier les commandes
save 900 1Toutes les 5 minutes et la clé a été modifiée au moins 10 fois.
save 300 10Toutes les 1 minutes et la clé a été modifiée au moins 10 000 fois.
save 60 10000Le fichier /var/lib/redis/6379/dump.rdb contient les données de dump de l'ensemble de données en mémoire depuis la dernière sauvegarde. Comme il crée d'abord un fichier temporaire puis remplace le fichier de vidage précédent, il n'y a aucun problème de corruption des données. Vous n'avez pas à vous inquiéter, vous pouvez simplement copier le fichier. Démarrer au démarrageVous pouvez utiliser systemd pour ajouter Redis à la liste de démarrage du système. Copiez l'exemple de fichier init_script dans /etc/init.d, faites attention au numéro de port représenté par le nom du script.
cp utils/redis_init_script /etc/init.d/redis_6379Maintenant, nous voulons utiliser systemd, alors créez un fichier unité nommé redis_6379.service sous /etc/systems/system.
vi /etc/systemd/system/redis_6379.serviceRemplissez le contenu suivant, les détails peuvent être trouvés dans systemd.service.
[Unit]Description=Redis on port 6379[Service]Type=forkingExecStart=/etc/init.d/redis_6379 startExecStop=/etc/init.d/redis_6379 stop[Install]WantedBy=multi-user.target
现在添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。
vm.overcommit_memory = 1net.core.somaxconn=512
对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis 选项。在一些情况下,你可以使用 replication 和 Sentinel 来提高可用性,或者将数据分散在多个服务器上,创建服务器集群。
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!