Linux-Installation Redis-Implementierungsprozess und Fehlerlösung

Linux-Installation Redis-Implementierungsprozess und Fehlerlösung

Ich habe heute Redis installiert und es sind einige Fehler aufgetreten, die vorher nicht aufgetreten sind. Ich werde sie hier aufzeichnen.

1. Redis installieren und Fehler

Laden Sie zuerst Redis herunter, die offizielle Download-Adressseite: https://redis.io/download

Wir wählen hier die stabile Version 6.0.1

Die normalen Installationsschritte sind wie folgt:

[root@localhost ~]# yum installiere gcc
[root@localhost ~]# cd /usr/local
[root@localhost lokal]# wget http://download.redis.io/releases/redis-6.0.1.tar.gz
[root@localhost lokal]# tar -xvf redis-6.0.1.tar.gz
[root@localhost lokal]# cd /usr/local/redis-6.0.1/
[root@localhost redis-6.0.1]# make PREFIX=/usr/local/redis installieren

Der folgende Fehler wird hier gemeldet

make[1]: *** [server.o] Fehler 1
make[1]: Verlasse das Verzeichnis "/usr/redis-6.0.1/src"
make: *** [alle] Fehler 2

server.c:2402:11: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „assert_file“
server.assert_file = "<keine Datei>";
^
server.c:2403:11: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „assert_line“
server.assert_line = 0;
^
server.c:2404:11: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „bug_report_start“
server.bug_report_start = 0;
^
server.c:2405:11: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „watchdog_period“
server.watchdog_period = 0;
^
server.c:2411:11: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „lua_always_replicate_commands“
server.lua_always_replicate_commands = 1;
^
server.c: In der Funktion „restartServer“:
server.c:2464:32: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
für (j = 3; j < (int)server.maxclients + 1024; j++) {
^
server.c: In der Funktion „adjustOpenFilesLimit“:
server.c:2491:29: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
rlim_t maxfiles = server.maxclients+CONFIG_MIN_RESERVED_FDS;
^
server.c:2497:15: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
server.maxclients = 1024 – CONFIG_MIN_RESERVED_FDS;
^
server.c:2529:53: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
unsigned int old_maxclients = server.maxclients;
^
server.c:2530:23: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
server.maxclients = bestes Limit-CONFIG_MIN_RESERVED_FDS;
^
server.c:2554:59: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „maxclients“
(unsigned long long) bestes Limit, Server.maxclients);
^
server.c: In der Funktion „checkTcpBacklogSettings“:
server.c:2574:48: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „tcp_backlog“
wenn (somaxconn > 0 und somaxconn < server.tcp_backlog) {
^
server.c:2575:171: Fehler: „struct redisServer“ hat kein Mitglied mit dem Namen „tcp_backlog“
serverLog(LL_WARNING,"WARNUNG: Die TCP-Backlog-Einstellung von %d kann nicht erzwungen werden, da /proc/sys/net /core/somaxconn auf den niedrigeren Wert von %d eingestellt ist.", server.tcp_backlog, somaxconn);

Lösung: Aktualisieren Sie die gcc-Version

[root@localhost redis-6.0.1]# gcc -v # GCC-Version anzeigen
[root@localhost redis-6.0.1]# yum -y install centos-release-scl # Upgrade auf Version 9.1
[root@localhost redis-6.0.1]# yum -y installiere devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@localhost redis-6.0.1]# scl aktivieren devtoolset-9 bash
Das Obige ist für den vorübergehenden Gebrauch. Wenn Sie gcc 9.1 für längere Zeit verwenden möchten:
[root@localhost redis-6.0.1]# echo "Quelle /opt/rh/devtoolset-9/enable" >>/etc/Profil

Dann kompilieren:

[root@mmjredis redis-6.0.1]# make PREFIX=/usr/local/redis installieren

Wenn die Installation erfolgreich war, erscheint folgende Meldung: Tipp: Am besten führt man 'make test' aus 😉

Führen wir zum Testen „make test“ aus.

Der folgende Fehler ist aufgetreten:

[root@localhost redis-6.0.1]# test durchführen
cd src und make test
make[1]: Wechseln Sie in das Verzeichnis "/usr/redis-6.0.1/src"
CC Makefile.dep
make[1]: Verlasse das Verzeichnis "/usr/redis-6.0.1/src"
make[1]: Wechseln Sie in das Verzeichnis "/usr/redis-6.0.1/src"
Sie benötigen tcl 8.5 oder neuer, um den Redis-Test ausführen zu können
make[1]: *** [test] Fehler 1
make[1]: Verlasse das Verzeichnis "/usr/redis-6.0.1/src"
make: *** [test] Fehler 2

Lösung:

[root@localhost redis-6.0.1]# yum installiere tcl[root@localhost redis-6.0.1]# mache einen Test

Der Test verlief wie folgt:

Führen Sie zuerst Redis aus und probieren Sie es aus:

[root@localhost redis-6.0.1]# /usr/local/redis-6.0.1/src/redis-server /usr/local/redis-6.0.1/redis.conf
32101:C 13. Mai 2020 17:01:48.248 # oO0OoO0OoO0Oo Redis wird gestartet oO0OoO0OoO0Oo
32101:C 13. Mai 2020 17:01:48.248 # Redis-Version=6.0.1, Bits=64, Commit=00000000, geändert=0, PID=32101, gerade gestartet
32101:C 13 Mai 2020 17:01:48.248 # Konfiguration geladen
32101:M 13. Mai 2020 17:01:48.249 * Maximale Anzahl geöffneter Dateien auf 10032 erhöht (ursprünglich auf 1024 eingestellt).
        _._
      _.-``__ ''-._
   _.-`` `. `_. ''-._ Redis 6.0.1 (00000000/0) 64 Bit
 .-`` .-```. ```\/ _.,_ ''-._
 ( ' , .-` | `, ) Ausführung im Standalone-Modus
 |`-._`-...-` __...-.``-._|'` _.-'| Hafen: 6379
 | `-._ `._ / _.-' |
 `-._ `-._ `-./ _.-' _.-'
 |`-._`-._ `-.__.-' _.-'_.-'|
 | `-._`-._ _.-'_.-' | http://redis.io
 `-._ `-._`-.__.-'_.-' _.-'
 |`-._`-._ `-.__.-' _.-'_.-'|
 | `-._`-._ _.-'_.-' |
 `-._ `-._`-.__.-'_.-' _.-'
   `-._ `-.__.-' _.-'
     `-._ _.-'
       `-.__.-' 

2. Hintergrundstart

Einfache Änderung des Hintergrundstarts

[root@localhost redis-6.0.1]# vim redis.conf

Ändern Sie „daemonize no“ in „daemonize yes“

Führen Sie es erneut aus

[root@localhost redis-6.0.1]# /usr/redis-6.0.1/src/redis-server /usr/redis-6.0.1/redis.conf
30385:C 13. Mai 2020 16:57:58.918 # oO0OoO0OoO0Oo Redis wird gestartet oO0OoO0OoO0Oo
30385:C 13. Mai 2020 16:57:58.918 # Redis-Version=6.0.1, Bits=64, Commit=00000000, geändert=0, PID=30385, gerade gestartet
30385:C 13 Mai 2020 16:57:58.918 # Konfiguration geladen

Der Hintergrundvorgang ist erfolgreich. Überprüfen wir ihn und beenden das Programm.

[root@localhost redis-6.0.1]# ps -aux|grep redis| grep -v grep
root 29836 0,0 0,0 162416 7912 ? SSL 16:56 0:00 /usr/redis-6.0.1/src/redis-server 127.0.0.1:6379
[root@localhost redis-6.0.1]# kill -9 29836

Was wir hier verwenden, ist, Redis mit dem Hintergrundsystemctl zu starten.

Fügen Sie zunächst Redis zum Servicedienst hinzu

vim /lib/systemd/system/redis.service

Schreiben

[Einheit]
Beschreibung=redis
Nach=Netzwerk.Ziel

[Service]
Typ=Forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis-6.0.1/src/redis-server /usr/local/redis-6.0.1/etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Installieren]
WantedBy=Mehrbenutzer.Ziel

Beachten Sie das Pfadproblem. Der Pfad der PID-Datei entspricht der PID-Datei in redis-6.0.1/src/redis-server

wq speichern und beenden

Führen Sie dann Folgendes aus

[root@localhost redis-6.0.1]# systemctl enable redis.service # Zum Boot hinzufügen

[root@localhost redis-6.0.1]# systemctl is-enabled redis.service # Überprüfen Sie, ob der Bootvorgang erfolgreich war
ermöglicht

[root@localhost redis-6.0.1]# systemctl start redis #Redis-Dienst starten

[root@localhost redis-6.0.1]# systemctl status redis //Den laufenden Status von Redis anzeigen

Wenn beim Start ein Problem auftritt, können Sie das Protokoll anzeigen und es über systemctl status redis beheben.

Wie in der Abbildung gezeigt, wurde es erfolgreich gestartet

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Informationen zur Linux-Redis-Installation und zu Installationsproblemen
  • Installationsprozess und Konfigurationsmethode von redis5.0.5 unter Linux
  • Redis-Übersicht und ausführliches Tutorial zur Installation von Redis unter Linux
  • Detaillierte Schritte zur Installation von Redis unter Linux

<<:  Lösung für das versehentliche Löschen von Daten in MySQL und Kill-Anweisungsprinzip

>>:  JS implementiert die Benutzerregistrierungsschnittstellenfunktion

Artikel empfehlen

So migrieren Sie lokales MySQL in eine Serverdatenbank

Wir können den scp-Befehl von Linux (scp kann unt...

Vue implementiert grafischen Überprüfungscode

In diesem Artikelbeispiel wird der spezifische Co...

Anfänger lernen einige HTML-Tags (1)

Anfänger können HTML lernen, indem sie einige HTM...

Einige Fragen zu Hyperlinks

<br />Ich freue mich sehr, an dieser Folge d...

JavaScript zum dynamischen Laden und Löschen von Tabellen

In diesem Artikel wird der spezifische JavaScript...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.17

Der Blogger sagte : Ich habe eine Reihe von Blogb...

Eine kurze Diskussion über die Verwendung und Analyse von Nofollow-Tags

Kontroverse um Nofollow Zwischen Zac und Guoping ...

Was ist Makefile in Linux? Wie funktioniert es?

Führen Sie Ihre Programme mit diesem praktischen ...

Detaillierte Erläuterung der 4 gängigen Datenquellen in Spark SQL

Allgemeine Lade-/Schreibmethoden Optionen manuell...

So installieren Sie schnell eine Tensorflow-Umgebung in Docker

Installieren Sie schnell die Tensorflow-Umgebung ...

Grundlegende Konzepte und allgemeine Methoden des Map-Mappings in ECMAScript6

Inhaltsverzeichnis Was ist eine Zuordnung? Unters...