Skip to content

Redis - systemd anpassen

Redis
1 1 137
  • 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.

  • Docker & Redis Datenbank

    Verschoben Linux docker linux redis
    2
    0 Stimmen
    2 Beiträge
    291 Aufrufe
    FrankMF
    @FrankM sagte in Docker & Redis Datenbank: save 60 1 #save 900 1 save 300 10 save 60 10000 Hier kann man auch noch schön sehen, wie ich gekämpft habe, bis ich mal eine dump.rdb gesehen habe. Auch irgendwie logisch, das ich nie eine gesehen hatte, wenn man weiß das save 900 1 bedeutet, das er alle 900 Sekunden speichert, wenn mindestens eine Änderung vorhanden ist. Das kann dann schon was dauern. Ich habe das dann mal verkürzt, damit ich schneller ein Ergebnis habe. save 60 1 Das brachte mich dann dem Ziel näher. Danach konnte ich die dump.rdb auch finden. Bitte keine Redis DB ohne Passwort laufen lassen!
  • Python & Redis-Datenbank

    Verschoben Linux python redis
    3
    0 Stimmen
    3 Beiträge
    223 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.
  • Redis - Datenbanken löschen

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

    Redis redis
    2
    0 Stimmen
    2 Beiträge
    995 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
  • RedisInsight

    Redis redis
    1
    4
    0 Stimmen
    1 Beiträge
    243 Aufrufe
    Niemand hat geantwortet
  • Wenn dir der Redis-Server flöten geht....

    Verschoben Redis linux redis
    3
    0 Stimmen
    3 Beiträge
    688 Aufrufe
    FrankMF
    So, nach einer kleinen Pause und ein wenig nachdenken ist mir doch noch was eingefallen Backports! Man so einfach! nano /etc/apt/sources.list Das folgende eintragen. # backports deb http://deb.debian.org/debian stretch-backports main Danach ein apt update Und dann schauen wir uns mal die Version an.... apt -t stretch-backports search redis-server Sorting... Done Full Text Search... Done golang-github-stvp-tempredis-dev/stretch-backports 0.0~git20160122.0.83f7aae-1~bpo9+1 all Go package to start and stop temporary redis-server processes libtest-redisserver-perl/oldstable,oldstable 0.20-1 all redis-server runner for tests python-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64 redis protocol reader for Python 2.X using hiredis python3-hiredis/oldstable,oldstable 0.2.0-1+b2 amd64 redis protocol reader for Python using hiredis redis/stretch-backports 5:5.0.3-3~bpo9+2 all Persistent key-value database with network interface (metapackage) redis-server/stretch-backports 5:5.0.3-3~bpo9+2 amd64 [residual-config] Persistent key-value database with network interface Und die habe ich gestern Abend gebaut. 127.0.0.1:6379> INFO # Server redis_version:5.0.5 Ok, das schmerzt jetzt
  • Redis startet nicht!?

    Verschoben Redis redis
    1
    0 Stimmen
    1 Beiträge
    414 Aufrufe
    Niemand hat geantwortet
  • Redis installieren

    Angeheftet Verschoben Redis linux redis
    1
    0 Stimmen
    1 Beiträge
    432 Aufrufe
    Niemand hat geantwortet