Redis: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
(Unixsocket mit absoluten Pfad angeben)
(changed for new debian)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 28: Zeile 28:
  timeout 300
  timeout 300
  loglevel notice
  loglevel notice
  logfile var/redis.log
  logfile /home/pacs/xyz00/users/service/redis/var/redis.log
  databases 16
  databases 16
  save 900 1
  save 900 1
Zeile 36: Zeile 36:
  appendonly no
  appendonly no
  dbfilename dump.rdb
  dbfilename dump.rdb
  dir var
  dir /home/pacs/xyz00/users/service/redis/var/


Der Redis-Dienst ist über die Server-lokale Netzwerk-Adresse 127.0.0.1 erreichbar und mit einem Passwort geschützt. Der Port ''33033'' für die Netzwerk-Schnittstelle muss ggf. angepasst werden.
Der Redis-Dienst ist über die Server-lokale Netzwerk-Adresse 127.0.0.1 erreichbar und mit einem Passwort geschützt. Der Port ''33033'' für die Netzwerk-Schnittstelle muss ggf. angepasst werden.

Aktuelle Version vom 14. Mai 2024, 07:52 Uhr

Redis installieren

Redis ist ein einfacher Datenspeicher für Schlüssel-Wert-Paare. Datensätze werden jeweils unter einem Schlüssel abgelegt. Die Daten werden jeweils im Hauptspeicher gehalten und nur zu konfigurierbaren Zeitpunkten auf die Festplatte gesichert.

Redis-Datenbanken werden häufig zur Speicherung von Warteschlangen benutzt. In Redis werden Aufträge gespeichert, die asynchron von Hintergrundprogrammen abgearbeitet werden.

Konfiguration

Redis ist auf den Hostsharing-Servern vorinstalliert. Für die Nutzung muss lediglich eine Konfigurationsdatei angelegt werden und ein Hitergrundprogramm gestartet werden.

Im folgenden wird für den User xyz00-service ein Redis-Dienst eingerichtet. Der User xyz00-service ist in HSAdmin mit /bin/bash als Shell eingerichtet.

Nach dem Login als xyz00-service lege ich Verzeichnisse ~/redis/etc und ~/redis/var an:

xyz00-service@h00:~$ mkdir redis
xyz00-service@h00:~$ mkdir redis/etc
xyz00-service@h00:~$ mkdir redis/var

Im etc-Verzeichnis wird die Konfigurationsdatei redis.conf für den Redis-Dienst abgelegt.

Eine Beispiel-Konfiguration ist:

requirepass <generiertes-passwort>
bind 127.0.0.1
port 33033
tcp-backlog 128
timeout 300
loglevel notice
logfile /home/pacs/xyz00/users/service/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
slave-serve-stale-data yes
appendonly no
dbfilename dump.rdb
dir /home/pacs/xyz00/users/service/redis/var/

Der Redis-Dienst ist über die Server-lokale Netzwerk-Adresse 127.0.0.1 erreichbar und mit einem Passwort geschützt. Der Port 33033 für die Netzwerk-Schnittstelle muss ggf. angepasst werden.

Der Dienst wird gestartet mit:

xyz00-service@h00:~/redis$ /usr/bin/redis-server etc/redis.conf

Mit Ctrl-C kann der Dienst wieder gestoppt werden.

Alternativ kann der zugriff auf Redis über einen Unixsocket erfolgen. Dann entfällt die Zeile 'bind 127.0.0.1' in der Konfiguration, der port wird auf 0 gesetzt. Stattdessen wir ein Unixsocket konfiguriert:

unixsocket /home/pacs/xyz00/users/service/redis/var/redis-server.sock
unixsocketperm 700
port 0

(der Unixsocket benötigt in der Konfiguration den vollständigen absoluten Pfad zum Socket im Dateisystem!)

Einrichtung als Server-Dienst

Redis soll über den Systemdienst SystemD automatisch im Hintergrund gestartet werden.

Dazu wird im Verzeichnis ~/.config/systemd/user eine Datei redis.service mit dem folgenden Inhalt angelegt:

[Unit]
Description=Redis Service

[Service]
WorkingDirectory=%h/redis
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/usr/bin/redis-server %h/redis/etc/redis.conf
Restart=always
PrivateTmp=true
NoNewPrivileges=true

[Install]
WantedBy=default.target

Die Datei wird mit den folgenden Shell-Kommandos geladen und aktiviert:

systemctl --user daemon-reload
systemctl --user enable redis.service
systemctl --user start redis.service

Mit den Kommandos

systemctl --user status 
systemctl --user status redis.service

kann der Status des Dienstes ermittelt werden.

Links