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.
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
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
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 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
Setzen Sie daemonize auf „Nein“. Systemd muss es im Vordergrund ausführen, sonst bleibt Redis plötzlich hängen.
daemonize no
Setzen Sie pidfile auf /var/run/redis_6379.pid.
pidfile /var/run/redis_6379.pid
Wenn Sie nicht vorhaben, den Standardport zu verwenden, können Sie ihn ändern.
port 6379
Legen Sie den Loglevel fest.
loglevel notice
Ändern Sie den Protokolldateipfad.
logfile /var/log/redis_6379.log
Setzen Sie das Verzeichnis auf /var/lib/redis/6379
dir /var/lib/redis/6379
Es gibt mehrere Vorgänge, die die Sicherheit verbessern können.
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
Möglicherweise benötigen Sie einen Fernzugriff. Wenn ja, sollten Sie ein Passwort festlegen, damit es vor jedem Vorgang erforderlich ist.
requirepass "bTFBx1NYYWRMTUEyNHhsCg"
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"
Verwenden Sie ein Passwort, um über den Unix-Socket zuzugreifen, und ändern Sie den Befehl
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.
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是一种免费使用和自由传播的类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!