Skip to content

Redis - systemd anpassen

Redis
1 1 126
  • Ich habe auf meinem Datenbank Server immer wieder Probleme mit meiner Redis Replication. Wenn das Updates kommen überschreibt der immer wieder die Datei des systemd Dienstes.

    Unter /etc/systemd/system findet man die Datei redis.service

    Dort gibt es zwei Zeilen, die bei mir Schwierigkeiten bereiten.

    ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
    ReadWriteDirectories=-/var/redis
    

    Diese müssen bei mir so aussehen

    ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd --daemonize no
    ReadWriteDirectories=-/var/run/redis
    

    Wenn man den Original Dienst ändert, ist das keine gute Idee. Beim nächsten Update ist das dann wieder weg 😞

    Ein wenig gegoogelt und mal nachgelesen, wie man das richtig macht. Das läuft eigentlich genauso, wie mit den config Dateien, wo man das so in der Art macht.

    • 10-file1
    • 20-file2
    • usw.

    Ihr kennt das.

    Bei SystemD Diensten legt man ein Verzeichnis an, in meinem Fall

    /etc/systemd/redis.conf
    

    Da hinein kommt das File

    10-startup.conf
    

    Inhalt des Files

    # [Service]
    ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd --daemonize no
    ReadWriteDirectories=-/var/run/redis
    

    Der SystemD Dienst sieht jetzt beim Starten, das diese Datei vorhanden ist und überschreibt dann die Werte entsprechend. Somit startet meine Redis Replication auch, wenn mal wieder ein Update reinkommt.

    Vorsicht. Dieser Beitrag kann Fehler enthalten, ich bin mir nicht 100% sicher, das das so alles passt. Beim nächsten Update werde ich sehen ob alles klappt und diese Zeile hier entfernen.

    Das hier kann man dann natürlich für alle systemd Dienste benutzen.

  • Redis - Keys von einer DB zu einer anderen DB kopieren

    Redis redis ki-generiert
    1
    1
    0 Stimmen
    1 Beiträge
    189 Aufrufe
    Niemand hat geantwortet
  • Redis Insight - Desktop UI

    Redis redis linux
    1
    3
    0 Stimmen
    1 Beiträge
    156 Aufrufe
    Niemand hat geantwortet
  • Python & Redis-Datenbank

    Verschoben Linux python redis
    3
    0 Stimmen
    3 Beiträge
    203 Aufrufe
    FrankMF
    Heute dann die nächste Herausforderung. Mein JSON soll so aussehen, damit ich das entsprechend erweitern kann. Stocks {0: {'stockname': 'Deutsche Telekom Aktie', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 100}, 1: {'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50}} Die Daten sollen wie oben schon ausprobiert, in einer Redis Datenbank liegen. So weit auch kein großes Problem. ABER, der Zugriff auf diese Daten war dann meine nächste Hürde Ok, ich habe also mehrere Einträge im JSON File bzw. in der Datenbank. Wie komme ich da nun wieder dran. Ein paar später dann die Lösung. Wie komme ich an den einzelnen Eintrag, also über den Index?? r1.json().get('stocks', 1) Gibt als Ergebnis {'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50} Ok, das passt schon mal. Somit kann man dann gewohnt auf die einzelnen Elemente zugreifen. print("TESTING", testing['stockname']) Ausgabe TESTING Henkel Ok, Teil 1 erledigt. Jetzt habe ich ja irgendwann mehrere Elemente in der Liste und brauch dann den letzten Index , um damit was machen zu können. Also, z.B. durch die Daten zu loopen. objkeys = r1.json().objkeys('stocks') print("Objkeys", objkeys) Ausgabe Objkeys ['0', '1'] Ok, kommt eine Liste des Index zurück. Damit kann man arbeiten Ich hatte dann zum Testen mittels einer while Schleife die Daten geladen, aber jetzt beim Tippen klingelt es und wir machen das schön mit enumerate @staticmethod def load(): data = {} for count, value in enumerate(objkeys): testing = r1.json().get('stocks', count) data[count] = { "stockname": testing['stockname'], "wkn1": testing['wkn1'], "wkn2": testing['wkn2'], "quantity": testing['quantity']} return data Somit habe ich die Daten aus der Redis Datenbank in einem Objekt und kann damit arbeiten.
  • Update v2.2.2

    NodeBB nodebb redis
    1
    0 Stimmen
    1 Beiträge
    117 Aufrufe
    Niemand hat geantwortet
  • Redis - Zweite Instanz

    Redis redis linux
    1
    0 Stimmen
    1 Beiträge
    311 Aufrufe
    Niemand hat geantwortet
  • Redis - Datenbank extern

    Redis redis
    2
    0 Stimmen
    2 Beiträge
    975 Aufrufe
    FrankMF
    Das habe ich doch oben vergessen reinzuschreiben, also wenn man das mal von extern testen muss um zu schauen ob die Verbindung geht. Keine Firewall blockt usw. dann kann man das ganz einfach so machen. root@webserver:~# redis-cli -h 10.10.1.10 -p 6379 10.10.1.10:6379> quit
  • Portainer - NodeBB Container erstellen

    Linux nodebb portainer linux redis
    1
    5
    0 Stimmen
    1 Beiträge
    345 Aufrufe
    Niemand hat geantwortet
  • Redis Replication

    Angeheftet Verschoben Redis linux redis
    4
    1 Stimmen
    4 Beiträge
    599 Aufrufe
    FrankMF
    Um die Verbindung zu testen, kann man folgende Befehle nutzen. redis-cli -h 10.1.1.0 -p 6379 -a <PASSWORD> und telnet 10.1.1.0 6379