NEWS
Redis, wat issn dat[Gelöst]
-
Hallo,
ich muss hier mal eine Frage stellen bzgl. Redis.
Ich bin mit meinem Broker von einem PI auf eine NAS-Synology umgezogen .
Umzug hat alles geklappt, läuft in einem Container.
Dann wollte ich die Admin Oberfläche starten und nichts, im Terminal geschaut der Broker läuft.
Ich habe alles versucht, alles nochmal neu gemacht und so weiter, nichts.
Dann habe ich iobroker in einem Container von der Abbild seite geladen und instaliert, IObroker läuft.
:roll: Hmm.
Mein Backup wieder eingespielt, Iobroker Admin Oberfläche nicht erreichbar.
:roll: Hmm
Dann habe ich irgendwo nachgelesen ich sollte mal Redis versuchen, keine Ahnung was es ist.
Dann habe ich in einem neuen zusätzlichen container Redis installiert und gestartet und siehe
da, mein Broker läuft einwandfrei.
Kann mir vielleicht jetzt jemand sagen was es damit auf sich hat.
Die Fremdinstallation braucht kein Redis, meine aber ja.
Was ist denn das Redis überhaupt? :?:
Könnte mich da jemand mal bitte aufklären. :idea:
Danke im voraus.
-
Hi,
Schau Mal hier da werden einige Sachen zu redis erläutert:
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
So,
ich habe das mal durchgelesen,habe aber immer
noch nicht verstanden warum es das redis gibt.
Naja es läuft.
-
So,
ich habe das mal durchgelesen,habe aber immer
noch nicht verstanden warum es das redis gibt.
Naja es läuft. `
Dan solltest dus nochmals lesen :-), es wird erklärt was der Unterschied zwischen redis und normaler object DB ist gibt übrigens mehrere Threads darüber im Forum
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Eine normale Installation hat niemals Redis als default. Wenn du also Redis brauchst hast du das irgendwann mal manuell eingerichtet.
-
Eine normale Installation hat niemals Redis als default. Wenn du also Redis brauchst hast du das irgendwann mal manuell eingerichtet. `
Es sind glaube ich images im Umlauf mit redis?
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Alle images auf iobroker.net sind mit redis. Ist es dann dort nicht auch als default aktiviert?
-
Alle images auf iobroker.net sind mit redis. Ist es dann dort nicht auch als default aktiviert? `
Die frage müsste @Homoran beantworten er macht die images
-
Ja,
Alle Images laufen mit Redis.
Dies stammt aus der Zeit, als weitestgehend nur RasPi (2?) verwendet wurden.
Redis erhöht IMHO die Performance deutlich.
Natürlich ist dies auch in einem Backup enthalten.
Soll also ein Backup benutzt werden um auf einer anderen Installation ohne redis wieder restored zu wetden, muss vor der Erstellung des Backups wieder auf filebasierte Speicherung der States umgeschaltet werden.
Dazu in der Konsole aufrufen
cd /opt/iobroker sudo iobroker setup custom
Alle Zeilen mit ENTER bestätigen und gut ist.
Dann das Backup erstellen.
Hier noch etwas Lesestoff
https://github.com/ioBroker/ioBroker.js … -states-db
Gruß Rainer
-
Bisher verwende ich redis nicht, daher meine Frage: Wo wird die Datenbank (dump.rdb) auf der Disk gespeichert ?
Weitere Frage: Weshalb sollte redis die Performance steigern ? Die Datenbank wird zwar im RAM gehalten, aber typisch alle 5 Minuten auf der Disk gesichert.
# Save the DB on disk: # # save <seconds><changes># # Will save the DB if both the given number of seconds and the given # number of write operations against the DB occurred. # # In the example below the behaviour will be to save: # after 900 sec (15 min) if at least 1 key changed # after 300 sec (5 min) if at least 10 keys changed # after 60 sec if at least 10000 keys changed # # Note: you can disable saving completely by commenting out all "save" lines. # # It is also possible to remove all the previously configured save # points by adding a save directive with a single empty string argument # like in the following example: # # save "" save 900 1 save 300 10 save 60 10000</changes></seconds>
Wird die Option file (states.json) gewählt, so werden ebenfalls sämtliche Zustände (states) im RAM gepuffert. Die Datei statesInMemServer.js habe ich so angepasst, dass der Puffer nur alle 10 Minuten auf die Disk gesichert wird (ohne Manipulation alle 30 s).
-
Weitere Frage: Weshalb sollte redis die Performance steigern ? Die Datenbank wird zwar im RAM gehalten, aber typisch alle 5 Minuten auf der Disk gesichert. `
Ich habs auch noch nicht ganz durchblickt, aber anscheinend ist einer der großen Performancegewinne, dass das Speichern auf der Platte durch einen Fork geschieht, während der Parent-Prozess fleißig weiter Anfragen beantwortet. ioBroker (fileDB) speichert soweit ich weiß mittels JSON.stringify, was für große Datenstrukturen verdammt langsam sein kann.Die Performance in der Benutzung soll wohl auch durch optimierte Datenstrukturen kommen und vor allem Speichereffizienz betreffen:
> Implementation of data structures stress on memory efficiency, so data structures inside Redis will likely use less memory compared to the same data structure modeled using an high level programming language.
-
Ich würde sagen das in dem Fall Redis eine "In-Memory-DB" ist die genau auf diese Aufgabe spezialisiert ist nativ geschrieben ist in C/C++. Noch wichtiger ist das Sie nativ unterstützt das man sich auf Änderungen subscriben kann und das als Trigger bekommt. Das sind die ganzen "State-Subscriptions" die ioBroker an vielen Stellen verwendet.
Bei den "ioBroker-eigenen" Implementierungen ist das alles in nodejs implementiert und die Subscriptions sind alle "Logik". Das kann Performancemäßig niemals so gut sein wie Redis. Und die ganze State-Logik läuft im zentralen js.controller-prozess ab der damit natürlich neben den anderen Dingen auch hier noch "belastet" wird. Wenn Redis eingesetzt wird ist das alles weggekapselt.
Am Ende ist die i/o-Sicht wohl identisch in der Standardkonfig. Wobei man dann halt (in beiden Fällen) Datenverluste hat - bei Redis ggf mehr als bei ioBroker weil ioBroker glaube alle 30s speichert oder so.
Mit Redis (und ner SSD/HDD) kann ich nur ADF als Persistenz empfehlen (da schreibt Redis quasi ein Logfile was dann regelmäßig konsolidiert wird, damit gibt es aber keinen Datenverlust). Und mit Slaves kann man nochmal den Stand der States auf einem anderen Rechner sichern.
Ingo
-
Was ist ADF?
Gesendet von iPad mit Tapatalk
-
Entschuldigung … AOF ... https://redis.io/topics/persistence
-
Hallo,
vielen Dank für die Hinweise. Jetzt bin ich wieder etwas schlauer geworden.
Vielen Dank für den Hinweis das Redis auszuschalten. Das wusste ich nicht.
Vielen Dank nochmals.
-
Hi,
da fällt mir doch noch eine Fage dazu ein.
Wie kann ich denn erkennen ob Redis installiert ist bzw. läuft :?:
Gruß totocotonio
-
Im Zweifel versuchen zu installieren mit „apt-get install redis-server“. Danach ists installiert
-
Redis-server kann ja laufen ohne dass iobroker dahin verbunden ist?
Kann man das auch auslesen?
Wenn ich iobroker setup custom mache wird ja bei den Optionen immer default angezeigt und nicht der aktuelle Zustand.
Gruß Rainer
-
Naja du könntest mit "redis-cli" zum Redis verbinden und dort abfragen wer so verbunden ist:
-
Bisher verwende ich redis nicht, daher meine Frage: Wo wird die Datenbank (dump.rdb) auf der Disk gespeichert ? `
Ich hole die Frage noch einmal hoch, da sie bisher nicht beantwortet wurde.