NEWS
Redis in ioBroker - Überblick
-
Redis FAQ
1. Brauche ich Redis für meinen ioBroker oder nicht?
Für alle üblichen Installationen reichen normalerweise die ioBroker-eigenen Datenbanken vollkommen aus! Erst wenn der js-controller dauerhaft 50-70% oder mehr CPU braucht und sich das System gleichzeitig träge anfühlt kann es Sinn machen sich mit dem Thema Redis zu beschäftigen. Alternativ wird es nötig wenn man ein hochverfügbares ioBroker System anstrebt, aber dazu sich noch einige Dinge mehr nötig.2. Wie finde ich heraus ob ich Redis nutze oder nicht?
Ein Aufruf voniobroker status
zeigt an welcher Datenbanktyp für die States- und Objects-Datenbanken verwendet werden. "file" bedeutet das die ioBroker eigenen Datenbanken genutzt werden. "redis" bedeutet das ein Redis im Einsatz ist. -
Jetzt brauche ich Urlaub.
-
Super Artikel.
Ich war wohl etwas voreilig und habe auch die Objekte auf Redis umgestellt, was bei mir nach Lektüre des Artikels gar nicht sinnvoll ist.
Es läuft und ich habe sogar den Eindruck, dass ich mehr RAM habe, als vorher, was eigentlich nicht sein kann.Kann ich die Speicherung der Objekte unproblematisch wieder auf file umstellen?
Sprich kann ich mit iobroker stepup custom auch wieder zurück auf file bei den Objekten?
Und noch ein zweite Frage. Ist redis mit dem backup Adapter kompatibel?
-
@apollon77
Herzlichen Dank für die (endlich) Aufklärung und die umfangreichen Erklärungen dazu.
Mir ist allerdings etwas aufgefallen.
Die Config liegt bei mir woanders.
nicht/etc/redis/redis-server.conf
sondern
/etc/redis/redis.conf
-
@apollon77 Top, Lesestoff fürs Wochenende
Vielleicht noch als Vorschlag für ein weiteres Kapitel: Die Docker-Fraktion wird dafür wohl einen eigenen Container aufsetzen (läuft bei mir seit 3 Wochen sehr stabil)
-
@Marty56 ja du kannst jederzeit in alle Richtungen mit dem controller 2.0. Auch die Migration funktioniert dann und macht alles so wie es nötig ist.
Der backitup Adapter kann sogar die Redis-DB sichern ... könnte man noch erweitern oben - Ich habe mich nur damit noch nicht beschäftigt.
-
@Chaot Du hast Recht. Aktualisiert!
-
@darkiop Auch ich habe mein Sentinel Test-Setup in LXC-Containern auf Proxmox laufen ... fmit Docker hab ich gerade zu wenig Erfahrung. Wenn jemand einen Text schreibt nehme ich es gern oben mit auf oder (vllt sinnvoller) als extra Thread den wir dann verlinken.
-
@apollon77 sagte in Redis in ioBroker - Überblick:
Der backitup Adapter kann sogar die Redis-DB sichern ... könnte man noch erweitern oben - Ich habe mich nur damit noch nicht beschäftigt.
Wobei der allerdings von einer lokalen Redis Installation ausgeht, @simatec ggf. kann man hier in Zukunft auch aufh "externe" Redis-DBs schauen?
@apollon77 sagte in Redis in ioBroker - Überblick:
Auch ich habe mein Sentinel Test-Setup in LXC-Containern auf Proxmox laufen ... fmit Docker hab ich gerade zu wenig Erfahrung. Wenn jemand einen Text schreibt nehme ich es gern oben mit auf oder (vllt sinnvoller) als extra Thread den wir dann verlinken.
Das strebe ich für die Zukunft evtl. auch noch an - Ein Nuc i3/i5 auf dem denn alles zusammen läuft und nicht mehr auf der Syno 918+. Wobei ich mich an Docker gewöhnt habe und eigentlich sehr zufrieden bin
Viel gibt es da aber auch nicht zu tun. Container mit
docker run -d \ --name iobroker-redis \ --hostname iobroker-redis \ --user=1026 \ --volume /volume2/docker-ssd/iobroker-redis/data:/data \ --network=mac0 \ --ip=192.168.1.86 \ --dns=192.168.1.43 \ --restart=always \ redis:latest
starten (Netzwerk natürlich zuvor auf eigene Umgebung anpassen).
Verbindung zur Redis-DB testen:
docker run -it --network mac0 --rm redis:latest redis-cli -h iobroker-redis
Die Konfiguration des ioBroker erfolgt ja anlog der "lokalen" Redis Installation.
-
@darkiop ich denke das backitup nicht so einfach an das dump file eines externen redis ran kommt oder?!
Bei Docker wäre also der Trick das /var/lib/redis nach außen zu Mappen wie es in deinem Beispiel ist und dann kannst du es so sichern. Und es übersteht auch restarts.
-
@apollon77 sagte in Redis in ioBroker - Überblick:
Bei Docker wäre also der Trick das /var/lib/redis nach außen zu Mappen wie es in deinem Beispiel ist und dann kannst du es so sichern. Und es übersteht auch restarts.
Du meinst /data (vom redis Contrainer) nach /var/lib/redis in den ioBroker Container zuhängen? Das kann ich gerne mal probieren. Mit meiner jetztigen Config übersteht /data aber auch restarts.
-
@darkiop ich denke das data Volume von deinem Container ist genau das was ich meine. Alles gut. Wenn da eine dump.rdb drin ist passts
-
@apollon77 sagte in Redis in ioBroker - Überblick:
@darkiop ich denke das backitup nicht so einfach an das dump file eines externen redis ran kommt oder?!
Bei Docker wäre also der Trick das /var/lib/redis nach außen zu Mappen wie es in deinem Beispiel ist und dann kannst du es so sichern. Und es übersteht auch restarts.
Es wäre auf jeden Fall eine Überlegung, das mit in backitup aufzunehmen oder.
Bisher unterstützt backitup die lokale Sicherung der redis db -
@simatec die Frage ist halt wie du an das dump rankommet. Wenn das geht dann ist es nur ein file.
-
@apollon77
Da gebe ich dir recht ... wie könnten wir Systemübergreifend hier einen Zugriff hinbekommen?Aktuell fällt mir ohne Freigaben des auf dem externen System nix ein 🧐
-
@simatec Ich denke das ich dann sehr schnell sehr vielfältig. Aber ja irgendwie Freigaben
-
danke für den Link
-
ich habe aus Neugier auch mal Redis installiert. Unter Windows 10 geht das auch mit WSL, ich habe die Ubuntu 18.04 Tools installiert und mit 'sudo apt install redis' bekommt man eine Version 4.0.9. Ist die aktuell genug? Ich hatte zuerst die 5.0.7 von der redis website installiert und kompiliert, damit läuft ioBroker auch komplett lokal unter Win10.
Wenn auf redis umgestellt ist und der server nicht läuft, dann startet der ioBroker Dienst nicht. Bzw. beendet wohl mit Fehler den er nicht anzeigt, nur im EventLog taucht eine Warning auf das der Controller beendet wurde. -
@JojoS 4.0.9 ist "ok" ... 5.x besser Und ja wenn Du Redis nutzt muss das auch da sein, sonst startet der controller nicht.
-
danke, und sicher, der Redis sollte up and running sein wenn man ihn benutzt. Nur wenn aus irgendeinem Grunde nicht, dann muss man erstmal suchen. Könnte in dem Fall der Controller eine statische Seite mit dem Fehler 'Redis not running' o.ä. anzeigen?