Heim  >  Artikel  >  Datenbank  >  So installieren Sie den Redis-Server unter CentOS 7

So installieren Sie den Redis-Server unter CentOS 7

WBOY
WBOYnach vorne
2023-05-31 08:25:211418Durchsuche

Redis ist eine Open-Source-Multiplattform-Datenspeichersoftware, die in ANSI C geschrieben ist. Redis kann Lua, C, Java, Python, Perl, PHP und viele andere Sprachen unterstützen.

Building Redis

Redis verfügt derzeit nicht über ein offizielles RPM-Installationspaket. Wir müssen aus dem Quellcode kompilieren und zum Kompilieren müssen wir Make und GCC installieren.

Wenn Sie GCC und Make nicht installiert haben, verwenden Sie yum, um sie zu installieren.

yum install gcc make

Laden Sie das Tar-Archiv von der offiziellen Website herunter.

curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz

Entpacken.

tar zxvf redis-3.0.4.tar.gz

Geben Sie das entpackte Verzeichnis ein.

cd redis-3.0.4

Verwenden Sie Make, um Quelldateien zu kompilieren.

make

Installation

Geben Sie das Verzeichnis der Quelldateien ein.

cd src

Kopieren Sie den Redis-Server und -Client nach /usr/local/bin.

cp redis-server redis-cli /usr/local/bin

Am besten Sentinel kopieren, vergleichen und prüfen.

cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin

Redis-Konfigurationsordner erstellen.

mkdir /etc/redis

Erstellen Sie ein gültiges Verzeichnis zum Speichern von Daten unter /var/lib/redis

mkdir -p /var/lib/redis/6379
Systemparameter

Damit Redis ordnungsgemäß funktioniert, müssen einige Kernel-Parameter konfiguriert werden.

Konfigurieren Sie vm.overcommit_memory auf 1, um das Abschneiden von Daten zu vermeiden. Weitere Informationen finden Sie hier.

sysctl -w vm.overcommit_memory=1

Ändern Sie die maximale Anzahl von Backlog-Verbindungen so, dass sie den TCP-Backlog-Wert in redis.conf überschreitet, der der Standardwert 511 ist. Weitere Informationen zum sysctl-basierten IP-Netzwerktunneling finden Sie unter kernel.org.

sysctl -w net.core.somaxconn=512

Kündigen Sie die Unterstützung für transparente große Seiten, da dies bei der Verwendung von Redis zu Verzögerungen und Problemen beim Speicherzugriff führt.

echo never > /sys/kernel/mm/transparent_hugepage/enabled

redis.conf

redis.conf ist die Konfigurationsdatei von Redis. Sie werden jedoch sehen, dass der Name dieser Datei 6379.conf ist und diese Nummer der Netzwerkport ist, den Redis abhört. Um mehrere Redis-Instanzen auszuführen, wird das folgende Benennungsschema empfohlen.

Kopieren Sie die Beispiel-redis.conf nach /etc/redis/6379.conf.

cp redis.conf /etc/redis/6379.conf

Bearbeiten Sie nun diese Datei und konfigurieren Sie die Parameter.

vi /etc/redis/6379.conf
daemonize

Setzen Sie daemonize auf „Nein“. Systemd muss es im Vordergrund ausführen, sonst bleibt Redis plötzlich hängen.

daemonize no
pidfile

Setzen Sie pidfile auf /var/run/redis_6379.pid.

pidfile /var/run/redis_6379.pid
Port

Wenn Sie nicht vorhaben, den Standardport zu verwenden, können Sie ihn ändern.

port 6379
Loglevel

Legen Sie den Loglevel fest.

loglevel notice
Protokolldatei

Ändern Sie den Protokolldateipfad.

logfile /var/log/redis_6379.log
dir

Setzen Sie das Verzeichnis auf /var/lib/redis/6379

dir /var/lib/redis/6379

Sicherheit

Es gibt mehrere Vorgänge, die die Sicherheit verbessern können.

Unix-Sockets

Da das Client-Programm und das Serverprogramm normalerweise auf demselben Computer ausgeführt werden, besteht keine Notwendigkeit, auf den Netzwerk-Socket zu hören. Wenn dies Ihrem Anwendungsfall ähnelt, können Sie einen Unix-Socket anstelle eines Netzwerk-Sockets verwenden. Dazu müssen Sie den Port auf 0 konfigurieren und dann die folgenden Optionen konfigurieren, um den Unix-Socket zu aktivieren.

Legen Sie die Socket-Datei des Unix-Sockets fest.

 unixsocket /tmp/redis.sock

Socket-Dateiberechtigungen einschränken.

unixsocketperm 700

Damit redis-cli darauf zugreifen kann, sollte der Parameter -s verwendet werden, um auf die Socket-Datei zu verweisen.

redis-cli -s /tmp/redis.sock
requirepass

Möglicherweise benötigen Sie einen Fernzugriff. Wenn ja, sollten Sie ein Passwort festlegen, damit es vor jedem Vorgang erforderlich ist.

requirepass "bTFBx1NYYWRMTUEyNHhsCg"
rename-command

Stellen Sie sich die Ausgabe des folgenden Befehls vor. Ja, dadurch wird die Konfiguration des Servers ausgegeben, daher sollten Sie diesen Zugriff nach Möglichkeit verweigern.

CONFIG GET *

Mit dem Befehl „rename-command“ können Sie die Verwendung dieses oder anderer Befehle einschränken oder verbieten. Sie müssen einen Befehlsnamen und einen alternativen Namen angeben. Um das Verbot eines Befehls sicherer zu machen, sollte sein alternativer Name auf eine leere Zeichenfolge gesetzt werden, damit niemand den Namen des Befehls erraten kann.

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"rename-command FLUSHALL ""rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"

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

Verwenden Sie ein Passwort, um über den Unix-Socket zuzugreifen, und ändern Sie den Befehl

Snapshot

Standardmäßig speichert Redis den Datensatz regelmäßig in der Datei dump.rdb in dem von uns festgelegten Verzeichnis. Sie können die Häufigkeit der Dumps mit dem Befehl save konfigurieren, dessen erster Parameter der Zeitrahmen in Sekunden und der zweite Parameter die Anzahl der an der Datendatei vorzunehmenden Änderungen ist.

Alle 15 Minuten und der Schlüssel wurde mindestens einmal geändert.

save 900 1

Alle 5 Minuten und der Schlüssel wurde mindestens 10 Mal geändert.

save 300 10

Alle 1 Minute und der Schlüssel wurde mindestens 10.000 Mal geändert.

save 60 10000

Die Datei /var/lib/redis/6379/dump.rdb enthält die Dump-Daten des In-Memory-Datensatzes seit dem letzten Speichern. Da zunächst eine temporäre Datei erstellt und dann die vorherige Dump-Datei ersetzt wird, besteht kein Problem der Datenbeschädigung. Sie müssen sich keine Sorgen machen, Sie können die Datei direkt kopieren.

Beim Booten beginnen

Sie können systemd verwenden, um Redis zur Systemstartliste hinzuzufügen.

Kopieren Sie die Beispieldatei init_script nach /etc/init.d und achten Sie auf die Portnummer, die durch den Skriptnamen dargestellt wird.

cp utils/redis_init_script /etc/init.d/redis_6379

Jetzt wollen wir systemd verwenden, also erstellen Sie eine Unit-Datei mit dem Namen redis_6379.service unter /etc/systems/system.

vi /etc/systemd/system/redis_6379.service

Füllen Sie den folgenden Inhalt aus, Details finden Sie in 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工具软件、应用程序和网络协议。

Das obige ist der detaillierte Inhalt vonSo installieren Sie den Redis-Server unter CentOS 7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen