Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Redis in ioBroker - Überblick

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Redis in ioBroker - Überblick

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      Rushmed Most Active @apollon77 last edited by

      @apollon77 Klar könnte alles schneller sein aber ich bin sehr zufrieden, vor allem wegen der Satbilität.
      Danke für den Rat.

      1 Reply Last reply Reply Quote 0
      • B
        Bert 0 last edited by

        Hallo,

        ich bin gerade dabei, mit meinem Qnap alles in Container zu verschieben. Dazu eine Frage.
        Ich habe Iobroker + Iobroker Slave auf einem Raspberry und möchte zukünftig mit redis auch Nextcloud im Container betreiben.

        Kann ich das alles mit einem installierten Rediscontainer machen?

        Danke Bert

        apollon77 JLeg Marc Berg 3 Replies Last reply Reply Quote 0
        • apollon77
          apollon77 @Bert 0 last edited by

          @bert-0 sagte in Redis in ioBroker - Überblick:

          Kann ich das alles mit einem installierten Rediscontainer machen?

          Klar ... Am Ende ist dieser Redis dann der neue "Master" im ioBroker System ...

          1 Reply Last reply Reply Quote 0
          • JLeg
            JLeg @Bert 0 last edited by

            @bert-0 sagte in Redis in ioBroker - Überblick:

            Kann ich das alles mit einem installierten Rediscontainer machen?

            du möchtest eine Redis-Instanz für iobroker und Nextcloud nutzen? Dann achte einfach darauf, dass du bei Nextcloud in der Redis-Config einen "dbindex" > "0" einträgst - dann kommen sich die beiden nicht in die Quere (afair hat Redis im Default 16 "Datenbanken" konfiguriert, ohne weitere Angaben landet man üblicherweise in DB "0". Da dürfte dann der iobroker drin sein...)

            B 1 Reply Last reply Reply Quote 1
            • B
              Bert 0 @JLeg last edited by Bert 0

              @jleg @apollon77

              Danke euch beiden. Ich werde nach Weihnachten mich mal ans Werk machen.
              Falls das mit der Redisdatenbank schief läuft, ist das ja über

              iobroker setup custom
              

              wieder rückgängig zu machen?
              Hoffe das es klappt, da das Antwortverhalten beim Iobroker schon grenzwertig ist ( Der Info TAB weist mich darauf hin, dass ich mehr als 30000 Objekte habe) und bei Nextcloud ausserhalb des Containers der Aufwand immer größer und dort die Anhebung der PHP Version mit QNAP immer schwieriger wird.

              Bert

              apollon77 1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 @Bert 0 last edited by

                @bert-0 Ja geht alles wieder rückgängig zu machen

                1 Reply Last reply Reply Quote 1
                • Marc Berg
                  Marc Berg Most Active @Bert 0 last edited by

                  @bert-0 sagte in Redis in ioBroker - Überblick:

                  Kann ich das alles mit einem installierten Rediscontainer machen?

                  Ich betreibe das genau so, und wie @JLeg schrieb, Nextcloud einfach in den DB1 schieben, dann sind die Daten sauber getrennt.

                  In der config.php sieht das dann so (oder ähnlich) aus:

                    'memcache.local' => '\\OC\\Memcache\\Redis',
                    'memcache.locking' => '\\OC\\Memcache\\Redis',
                    'redis' => 
                    array (
                      'host' => 'redis',
                      'port' => 6379,
                      'dbindex' => 1,
                    ),
                  
                  B 1 Reply Last reply Reply Quote 1
                  • B
                    Bert 0 last edited by Bert 0

                    Ich habe nun mit :

                    docker run -d  --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
                    

                    einen redis Container als Host auf meinem QNAP installiert. Config kann bearbeitet werden und auch eine Dump.rdb wurde erzeugt.

                    Nun habe ich Master ( 192.168.2.xxx) im Container als Bridge und zusätzlich noch einen Raspy im gleichen Netzwerkadressraum.
                    Ich schaffe es aber nicht mit

                    iobroker setup custom
                    

                    Redis einzubinden. Selbst wenn ich die IP des Redis Containers angeben, kommt die Fehlermeldung.

                    Do you want to migrate objects and states from "jsonl/jsonl" to "redis/redis" [y/N]: y
                    
                    Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y
                    
                    Connecting to previous DB "jsonl/jsonl"...
                    Server Configured backup period 7200000 is larger than the supported maximum of 35791 minutes. Defaulting to 120 minutes.
                    Server Configured backup period 7200000 is larger than the supported maximum of 35791 minutes. Defaulting to 120 minutes.
                    Creating backup ...
                    This can take some time ... please be patient!
                    host.iobroker 8521 states saved
                    host.iobroker 10736 objects saved
                    Backup created: /opt/iobroker/backups/2024_01_02-15_06_32_backupiobroker-migration.tar.gz
                    updating conf/iobroker.json
                    
                    Connecting to new DB "redis/redis" (can take up to 20s) ...
                    No connection to objects 10.0.3.2:6379[redis]
                    
                    New Database could not be connected. Please check your settings. No settings have been changed.
                    restoring conf/iobroker.json
                    No connection to states 10.0.3.2:6379[redis]
                    

                    Ich weiss das ich in einem anderen Adressraum bin, aber gibt es da eine Lösung?
                    Oder kann ich den iobroker Master von Bridge in Host netzwerkmäßig ändern, und wie kann ich dann auf diesen zugreifen ausserhalb des Containers?

                    Danke Bert

                    Marc Berg 1 Reply Last reply Reply Quote 0
                    • Marc Berg
                      Marc Berg Most Active @Bert 0 last edited by

                      @bert-0 sagte in Redis in ioBroker - Überblick:

                      Ich habe nun mit :

                      docker run -d  --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf
                      

                      einen redis Container als Host auf meinem QNAP installiert.

                      Was meinst du mit "Host"? Host-Netzwerk kann nicht gemeint sein mit diesem run Befehl.

                      Nun habe ich Master ( 192.168.2.xxx) im Container als Bridge und zusätzlich noch einen Raspy im gleichen Netzwerkadressraum.

                      ?? Du hast einem Bridge-Netzwerk den gleichen Adressraum zugewiesen wie dem physischen Netzwerk?

                      Ich weiss das ich in einem anderen Adressraum bin, aber gibt es da eine Lösung?
                      Oder kann ich den iobroker Master von Bridge in Host netzwerkmäßig ändern, und wie kann ich dann auf diesen zugreifen ausserhalb des Containers?

                      Bitte nochmal detailliert beschreiben, wie die Adressbereiche aussehen, welcher Container mit welcher IP läuft und was der Raspi da für eine Rolle spielen soll.

                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Bert 0 @Marc Berg last edited by

                        @marc-berg sagte in Redis in ioBroker - Überblick:

                        Ich habe nun mit :
                        docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf

                        einen redis Container als Host auf meinem QNAP installiert.

                        Was meinst du mit "Host"? Host-Netzwerk kann nicht gemeint sein mit diesem run Befehl.
                        31176b63-984b-43a9-927e-0f37331b3ad6-grafik.png

                        Hast du Recht, ist nur Standard ( NAT ) . Sorry

                        @marc-berg sagte in Redis in ioBroker - Überblick:

                        ?? Du hast einem Bridge-Netzwerk den gleichen Adressraum zugewiesen wie dem physischen Netzwerk?

                        ja, das ist der Adressraum meiner Fritzbox und wird über die Bridge auf den virtuellen Switch des QNAPS geleitet. Grund ist, ich habe einen Raspy als Slave/Multihost und virtueller CCU und der liegt im gleichen Adressraum ( Iobroker Master : 192.168.2.30 und Slave Raspberry 192.168.2.40).

                        Wenn du hier einen anderen Konfigurationsvorschlag hast dann gerne. Der Redis Server liegt auf: 10.0.3.2. Der wir aber wahrscheinlich gekapselt vom Netzwerk.

                        86485ac0-9cab-4e91-a3b5-603f3a159a66-grafik.png

                        Danke

                        Marc Berg 1 Reply Last reply Reply Quote 0
                        • Marc Berg
                          Marc Berg Most Active @Bert 0 last edited by

                          @bert-0 sagte in Redis in ioBroker - Überblick:

                          ja, das ist der Adressraum meiner Fritzbox und wird über die Bridge auf den virtuellen Switch des QNAPS geleitet.

                          Das ist dann aber kein Bridge-Netzwerk, sondern ein MACVLAN (in Docker Sprech), auch wenn das QNAP hier nicht so nennt.

                          Wenn du hier einen anderen Konfigurationsvorschlag hast dann gerne. Der Redis Server liegt auf: 10.0.3.2. Der wir aber wahrscheinlich gekapselt vom Netzwerk.

                          Ja genau, auf diese IPs hast du (ohne Verbiegungen an den Routen) von außen keinen Zugriff. Darum gibt es ja das Portmapping, um über diese Ports des Hosts zuzugreifen. ABER von einem Container im MACVLAN darf nicht auf den Host zugegriffen werden. 🤷‍♂️

                          Aus meiner Sicht hast du zwei Möglichkeiten

                          • den Redis Container mit ins MACVLAN setzen (an den Virt. Switch 3) oder

                          • der ioBroker Container zusätzlich an dein Bridge-Netzwerk (lxcbr0) anbinden

                          Im zweiten Fall kannst du vom ioB dann direkt auf den redis-Container zugreifen.

                          B 1 Reply Last reply Reply Quote 0
                          • B
                            Bert 0 @Marc Berg last edited by

                            @marc-berg sagte in Redis in ioBroker - Überblick:

                            Aus meiner Sicht hast du zwei Möglichkeiten

                            den Redis Container mit ins MACVLAN setzen (an den Virt. Switch 3) oder

                            der ioBroker Container zusätzlich an dein Bridge-Netzwerk (lxcbr0) anbinden

                            Danke für deine Geduld. Der 1. Fall ( (an den Virt. Switch 3) ) ist aus meiner Sicht der beste.

                            jetzt scheitert das aber daran, wie ich das per Dockerbefehl bei Austausch mit einbinden kann. Das ist übrigens auch das gleiche problem bei meinem iobroker. Ich kann den über Docker installieren, aber muss danach manuell auf Bridge mit der gewünschten IP setzen.

                            @bert-0 sagte in Redis in ioBroker - Überblick:

                            docker run -d --name redis-qnap --restart=always -p 6379:6379 -v /share/CE_CACHEDEV1_DATA/Container/redis-data:/data -v /share/CE_CACHEDEV1_DATA/Container/redis-data/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf

                            Hast du eine Idee, wie ich das per Docker so konfigurieren kann, dass die im gleichen Netzwerk sind?

                            Danke

                            Bert

                            Marc Berg 1 Reply Last reply Reply Quote 0
                            • Dr. Bakterius
                              Dr. Bakterius Most Active last edited by

                              Ich habe auch mal wieder redis probiert. Die CPU-Last sinkt von 9% auf 6%. Aber die Disk IO schnellt stark nach oben. Damit wird die SSD viel stärker gefordert und deren Lebensdauer sinkt. Ist das normal?

                              disk io.jpg
                              Da wo man nur einen Strich nähe 0 sieht ist jsonl im Einsatz. Die fast 3,5 M sind mit redis.

                              Wegen der 3% CPU-Last hat es wenig Sinn redis zu verwenden - vor allem wenn die SSD so übermäßig belastet wird. Deswegen wieder auf jsonl umgestiegen. Der Wechsel geht ja schnell.

                              Marc Berg 1 Reply Last reply Reply Quote 0
                              • Marc Berg
                                Marc Berg Most Active @Bert 0 last edited by

                                @bert-0 sagte in Redis in ioBroker - Überblick:

                                Hast du eine Idee, wie ich das per Docker so konfigurieren kann, dass die im gleichen Netzwerk sind?

                                Da gibt es doch so eine schicke Oberfläche in der Container Station, geht das damit nicht?

                                Unter Docker musst du dein run Befehl um den "network" Parameter ergänzen:

                                docker run --network=mein_macvlan_netzwerk --ip=192.168.2.x ....
                                

                                Wie das Netzwerk heißt bekommst du mit

                                docker network ls
                                

                                raus. Aber ich bin, was QNAP angeht, völlig ahnungslos und weiß nicht, wie das unter der Haube verdrahtet ist.

                                1 Reply Last reply Reply Quote 0
                                • Marc Berg
                                  Marc Berg Most Active @Dr. Bakterius last edited by Marc Berg

                                  @dr-bakterius sagte in Redis in ioBroker - Überblick:

                                  Ist das normal?

                                  Das hängt im Wesentlichen davon ab, wie die DB parametriert wurde und wieviel Datenänderungen du an den States hast. Über den "save" Parameter kann man ja sehr genau vorgeben, wie oft gespeichert werden soll.

                                  # Unless specified otherwise, by default Redis will save the DB:
                                  #   * After 3600 seconds (an hour) if at least 1 change was performed
                                  #   * After 300 seconds (5 minutes) if at least 100 changes were performed
                                  #   * After 60 seconds if at least 10000 changes were performed
                                  #
                                  # You can set these explicitly by uncommenting the following line.
                                  #
                                  # save 3600 1 600 100 60 10000
                                  

                                  Außerdem könnte man auch noch auf "AOF" umstellen. Damit werden alle Änderungen an den Daten immer als kleine Häppchen an die .aof Datei angehängt. In regelmäßigen Abständen (je nach Konfiguration) erfolgt dann ein Umkopieren in die *.rdb Datei. Ob dabei die Schreiblast sinkt, habe ich aber nicht ausprobiert. Ich fand' es charmant, dass die Daten praktisch in Echtzeit weggeschrieben werden, ohne dass jedesmal die rdb-Datei komplett neu erstellt wird.

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    peterfido @Marc Berg last edited by peterfido

                                    Moin,

                                    vor einiger Zeit hatte ich States und Objects auf Redis umgestellt. Jedesmal, wenn die VM neu starten oder einfach nur herunterfahren sollte, hat das etwa 1:40 Minuten gedauert. Heute habe ich mich mal auf die Suche gemacht, auch, weil ich die Warnung bekam, dass die Locale wieder umgestellt werden muss. Da wurde also gestern Abend bei den Updates die Config überschrieben.

                                    Das Ergebnis der Suche war, dass ioBroker zu lange brauchte und dann abgeschossen wurde. Also mal die Logs von ioBroker angesehen und herausgefunden, dass dort schon die Verbindung zur Datenbank fehlte. Demnach wurde Redis zu früh beendet, oder ioBroker zu spät.

                                    Also habe ich erstmal beides auf JSONL umgestellt. Nun fährt die VM wieder ruck-zuck herunter und startet dementsprechend flott neu.

                                    Mit JSONL gibt top folgendes aus:

                                        PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
                                        601 iobroker  20   0   11.2g 482936  45336 S  21.6   5.9   5:59.37 iobroker.js-con
                                        701 iobroker  20   0   11.2g 428816  46196 S  15.6   5.3   4:48.49 io.javascript.0
                                        679 iobroker  20   0   21.1g 278612  48672 S   4.7   3.4   1:37.32 node-red
                                       2004 iobroker  20   0  693180 107708  43808 S   4.3   1.3   1:14.40 io.statistics.0
                                        647 iobroker  20   0  775992 136060  37920 S   4.0   1.7   1:14.89 io.influxdb.0
                                        801 iobroker  20   0   10.7g 134092  40248 S   3.3   1.6   0:44.06 io.hue.0
                                       2161 iobroker  20   0  886904  90892  38384 S   0.7   1.1   0:08.82 io.ws.0
                                        916 iobroker  20   0  691744  89264  38744 S   0.3   1.1   0:03.31 io.hm-rpc.2
                                        931 iobroker  20   0  685204  83752  39288 S   0.3   1.0   0:03.53 io.s7.0
                                        946 iobroker  20   0  686820  81716  39624 S   0.3   1.0   0:02.20 io.chromecast.0
                                       1701 iobroker  20   0  749024  77496  38700 S   0.3   1.0   0:04.54 io.jeelink.0
                                       2039 iobroker  20   0  966580 109288  39884 S   0.3   1.3   0:07.40 io.web.0
                                       2236 iobroker  20   0  883100  85336  39796 S   0.3   1.0   0:03.28 io.tankerkoenig
                                    
                                    

                                    Die CPU Auslastung der VM hat sich etwas erhöht:
                                    23b43a5d-40fb-47eb-9bd6-4913cbe0949d-image.png

                                    Disk IO ist ok:
                                    77261ea6-9691-47ea-9852-91219348ce1b-image.png

                                    RAM passt auch:
                                    9321ff3d-502f-4f7e-90e9-471bac725b1b-image.png

                                    Daher lasse ich es erstmal auf JSONL. Wenn mir Probleme auffallen, werde ich eine eigene VM oder einen Container für Redis anlegen, welcher durchläuft, wenn ioBroker neu startet oder herunterfährt. Allerdings könnte da dann noch das Netzwerk reingrätschen, wenn die VM von ioBroker das Netzwerk kappt, bevor ioBroker fertig zum herunterfahren ist. - Irgendwas ist ja immer 😁

                                    Ach ja die Konfig der VM:
                                    11bbde4d-013e-466b-8c51-10560eca7916-image.png

                                    und vom Proxmox Host: (Intel NUC 12, NUC12WSHi5 Wall Street Canyon Mini-PC Desktop)
                                    250964c3-88c9-4c94-a9a2-5478b395aa0b-image.png

                                    Ro75 W 2 Replies Last reply Reply Quote 0
                                    • Ro75
                                      Ro75 @peterfido last edited by

                                      @peterfido ich habe keine VM, aber ich habe den Reboot oder Shutdown meines Server anders gelöst. Via Skript beende ich zunächst den ioBroker, danach speichere ich die Redis-DB zwangsweise und danach der eigentliche Shutdown oder Reboot.

                                      Das funktioniert ohne Probleme, ohne Datenverlust und geht richtig schnell.

                                      Ro75.

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        Wildbill @peterfido last edited by

                                        @peterfido Hast/Hattest Du iobroker und redis in separaten VMs/LXCs? Falls ja, dann kannst Du in Proxmox ja die Reihenfolge (inklusive Verzögerung) einstellen, in der sie gestartet/gestoppt werden. Bei mir läuft es problemlos. Es wird erst die iobroker gestoppt, bevor dann redis runterfährt. Beim Start dann genau andersrum.
                                        Aber natürlich, weil die Dienste in separaten VMs/Containern laufen. Wenn beide in einem laufen (was etwas der Sinnhaftigkeit von virtualisierten Systemen widerspricht), dann musst Du das direkt im System einstellen, dass der iobroker-Dienst eben erst startet, wenn redis gestartet ist.

                                        Gruss, Jürgen

                                        P 1 Reply Last reply Reply Quote 0
                                        • P
                                          peterfido @Wildbill last edited by peterfido

                                          @wildbill Danach hatte ich (kurz) gesucht. Also wie man die Reihenfolge der Dienste bei systemd vorgeben kann und dass er wartet. Also beim Start muss er auf Redis warten und beim Beenden auf ioBroker.

                                          Beides in einer VM. Eigentlich alles drei, da ich zwei Redis Instanzen, jeweils für States und Objects, eingerichtet hatte. Die zusätzlich VM für Redis habe ich oben ja als Plan B erwähnt. Jetzt lass ich es erstmal so und vergleiche in ein paar Tagen per Diagramme im Proxmox.

                                          Die CPU-Last ist gestern nach den Updates zurückgegangen. Heute bei der Umstellung auf JSONL wieder etwas hoch.
                                          f236b8c8-c704-43d5-9886-88d6635e2901-image.png

                                          W 1 Reply Last reply Reply Quote 0
                                          • Ro75
                                            Ro75 last edited by

                                            @peterfido sagte in Redis in ioBroker - Überblick:

                                            Die CPU-Last ist gestern nach den Updates zurückgegangen. Heute bei der Umstellung auf JSONL wieder etwas hoch.

                                            Gerade deswegen habe ich auf Redis umgestellt. Deutlich weniger CPU-Last und alles im ioBroker (speziell Objektbaum und VIS) laden deutlich schneller.

                                            Ro75.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            649
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            js-controller redis
                                            35
                                            136
                                            47166
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo