NEWS
Redis, wat issn dat[Gelöst]
-
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. -
Hallo Paul,
ich würde dir gerne helfen, weiss es aber nicht.
Um zu suchen: ist diese dump.rdb bei redis (RedisDatenBank??)
Gruß
Rainer
-
Um zu suchen: ist diese dump.rdb bei redis (RedisDatenBank??) `
Laut Doku von redis ist der Standardname der Datei dump.rdb. Allerdings habe ich nicht gefunden, wo diese abgespeichert wird. Ich vermute mal, dass dies konfigurierbar ist. Wenn Du die Standardkonfiguration nicht geändert hast, wird die Datei in Deinen Images in einem Standardverzeichnis sein. Nur welches ist das ?Anmerkung: Ich würde nach *.rdb suchen.
Wird die Datei bei einem Backup von ioBroker mit gesichert ?
-
-
Hab sie:
dump.rdb /var/lib/redis
temp-31527.rdb /var/lib/redis
Gruß
Rainer
-
Danke Rainer
@Homoran:Wird die Datei bei einem Backup von ioBroker mit gesichert ?
Meines wissens nicht. `
Dann kann es nach einem Restore auf einem neuen System (einer neuen SD Card) passieren, dass lange Zeit keine States zu Datenpunkten existieren und getState(id) zu einer Fehler- bzw. Warnungsmeldung führt. -
Ich war immer davon ausgegangen, dass diese States genauso schnell angelegt werden, wie bei einer Neuinstallation.
(Also nach etwa 5 Minuten sollte alles da sein)
je länger ich darüber nachdenke:
Das müssen dann aber auch Datenpunkte sein, die nur selten beschrieben werden.
Da müsste ich dann mal über eine Backupstrategie nachdenken
Oder redis weglassen, obwohl beim RasPi2 war der Performancegewinn deutlich spürbar
Gruß
Rainer
-
Das müssen dann aber auch Datenpunkte sein, die nur selten beschrieben werden. `
Ja, wie z.B. einige Datenpunkte vom Kanal 0 der HM Geräte. -
einige Datenpunkte vom Kanal 0 der HM Geräte. `
und die werden nicht beim Neustart von ioBroker und dem damit verbundenen neustart des hm-rpc neu ausgelesen? :shock:Gruß
Rainer
-
die werden nicht beim Neustart von ioBroker und dem damit verbundenen neustart des hm-rpc neu ausgelesen? `
Bei mir nicht. Ein "LOWBAT" z.B. habe ich noch nie empfangen, da ich die Batterien jedes Jahr austausche. -
Da halte ich gegen!
ich wechsel nicht regelmäßig selber, aber habe auch bei diesen Geräten noch nie ein lowbat gehabt:
:ganzvorsichtigfrag: vielleicht ein Feature von hm-con?
Gruß
Rainer