Maison  >  Article  >  base de données  >  Comment installer le serveur Redis sur CentOS 7

Comment installer le serveur Redis sur CentOS 7

WBOY
WBOYavant
2023-05-31 08:25:211462parcourir

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.

Building Redis

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

Installation

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
Paramètres système

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

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
daemonize

Définissez démonize sur non, systemd en a besoin pour s'exécuter au premier plan, sinon redis raccrochera soudainement.

daemonize no
pidfile

Définissez le fichier pid sur /var/run/redis_6379.pid.

pidfile /var/run/redis_6379.pid
port

Si vous ne prévoyez pas d'utiliser le port par défaut, vous pouvez le modifier.

port 6379
loglevel

Définissez le niveau de journalisation.

loglevel notice
logfile

Modifiez le chemin du fichier journal.

logfile /var/log/redis_6379.log
dir

Définissez le répertoire sur /var/lib/redis/6379

dir /var/lib/redis/6379

security

Ce qui suit en sont quelques-unes. Une opération qui peut améliorer la sécurité.

Sockets Unix

É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
requirepass

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"
rename-command

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"

如何在CentOS 7上安装Redis服务器

Utilisez un mot de passe pour accéder via le socket Unix et modifier les commandes

Snapshot# 🎜 🎜#
Par défaut, redis videra périodiquement l'ensemble de données dans le fichier dump.rdb dans le répertoire que nous avons défini. Vous pouvez configurer la fréquence des dumps à l'aide de la commande save, dont le premier paramètre est la durée en secondes et le deuxième paramètre est le nombre de modifications à apporter sur le fichier de données.

Toutes les 15 minutes et la clé a été modifiée au moins une fois.

save 900 1

Toutes les 5 minutes et la clé a été modifiée au moins 10 fois.

save 300 10

Toutes les 1 minutes et la clé a été modifiée au moins 10 000 fois.

save 60 10000

Le 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émarrage

Vous 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_6379

Maintenant, nous voulons utiliser systemd, alors créez un fichier unité nommé redis_6379.service sous /etc/systems/system.

vi /etc/systemd/system/redis_6379.service

Remplissez 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系统

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer