Skip to content

Redis ConnectionPool

Redis
  • Schnell nachdem ich meinen Redis Stack Server auf eine VM ausgelagert hatte, stellte ich morgens beim Kaffee fest, das meine Flask Anwendung nicht mehr läuft. Mein PC ist meistens im Standby.

    broken pipe error (so in etwa)
    

    Um das zu beheben, musste ich jedes mal die Anwendung neu starten. Nervig! Das muss doch auch besser gehen und man müsste der Flask Anwendung das nur erklären 🙂

    Da man nicht alles wissen kann, nutze ich dann gerne für solche Fälle - ChatGPT Ich stellte also meine Frage und bekam das hier als Antwort.

    self.pool = redis.ConnectionPool(
                host=host,
                port=port,
                db=db,
                password=config.REDIS_PASSWORD,
                # Auto-Reconnect einstellen
                retry_on_timeout=True,
                # Optional: Weitere Einstellungen wie maximale Wiederverbindungsversuche,
                # Timeout-Werte, etc. können hier konfiguriert werden
                health_check_interval=30  # Überprüft die Verbindung alle 30 Sekunden
            )
    

    ChatGPT empfahl also einen Redis ConnectionPool anzulegen. In der ersten Antwort fehlte noch der health_check_interval, wie sich aber raus stellte ist der nötig.

    Somit sieht meine Datenbank Klasse wie folgt aus (nur der init Teil

    class PortfolioSettings:
    
        def __init__(self, host=config.SERVER_IP, port=6379, db=None):
            if db is None:  # If db is not provided explicitly, use TEST_MODE to decide
                if config.TEST_MODE == 1:
                    db = config.TEST[0]
                else:
                    db = config.LIVE[0]
    
            # Verwende einen Connection Pool
            self.pool = redis.ConnectionPool(
                host=host,
                port=port,
                db=db,
                password=config.REDIS_PASSWORD,
                # Auto-Reconnect einstellen
                retry_on_timeout=True,
                # Optional: Weitere Einstellungen wie maximale Wiederverbindungsversuche,
                # Timeout-Werte, etc. können hier konfiguriert werden
                health_check_interval=30  # Überprüft die Verbindung alle 30 Sekunden
            )
    
            self.client = redis.Redis(connection_pool=self.pool)
    

    Und damit funktioniert das bis jetzt sehr gut. Jetzt müsste ich nur noch wissen, wie der Redis ConnectionPool funktioniert!??

  • Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch.

    https://chat.openai.com/share/b10fdadc-2c9b-404a-bc99-c883d110d6af

  • KDE neon Unstable Edition

    Linux
    6
    2
    0 Stimmen
    6 Beiträge
    349 Aufrufe
    FrankMF
    Heute Morgen beim mal die Testinstallation aktualisiert. 484 Pakete [image: 1700901047287-screenshot_20231125_092126.png] Nach dem Klicken auf Alle aktualisieren, startete der Rechner neu und installierte dann die Updates!? Holy Fuck, das erinnert mich an M$. Aber gut, KDE Neon soll ja auch nicht mein Hauptsystem werden.
  • Debian 13 - Trixie

    Linux
    1
    0 Stimmen
    1 Beiträge
    170 Aufrufe
    Niemand hat geantwortet
  • Proxmox - Backup Server WakeOnLan

    Proxmox
    1
    2
    0 Stimmen
    1 Beiträge
    737 Aufrufe
    Niemand hat geantwortet
  • Kopia 0.7.0-rc1 Kurztest

    Kopia
    2
    2
    0 Stimmen
    2 Beiträge
    353 Aufrufe
    FrankMF
    Nachdem ich doch ziemlich lange Snapshot Zeiten hatte, habe ich Jarek mal gefragt woran das liegt. I guess you could run it in the cloud but latency will be progressively worse because it's a chatty protocol sensitive to latency Technisch verstehe ich das nicht, aber ich habe dann mal als kurzen Test auf meine lokale SSD einen Snapshot gemacht. Der war nach 2 Minuten (ca. 11GB) fertig. Der zweite Snapshot brauchte ca. 12 Sekunden. Das hört sich schon mal viel besser an, als die Stunden. Aktuell ist der Plan den Kopia-Server im Internet zu nutzen damit beerdigt. Das scheint so nicht zu funktionieren. Ich mache da noch einen kurzen Test, diesmal Lokal auf meinem NAS.
  • Kopia - Verbessertes UI in Arbeit

    Kopia
    4
    0 Stimmen
    4 Beiträge
    426 Aufrufe
    FrankMF
    Nächste tolle Neuerung, man kann die Datensicherung jetzt sofort mounten. Sich alles ansehen usw. [image: 1599595077687-bildschirmfoto-vom-2020-09-08-21-56-39.png]
  • ROCKPro64 - PCIe SATA-Karte mit JMicron JMS585- Chip

    Angeheftet Hardware
    13
    1
    1 Stimmen
    13 Beiträge
    2k Aufrufe
    FrankMF
    Ich möchte das dann hier zum Abschluss bringen, das NAS ist heute zusammengebaut worden. Hier zwei Fotos. [image: 1587814588721-img_20200425_102156_ergebnis.jpg] [image: 1587814595011-img_20200425_102206_ergebnis.jpg]
  • [HOWTO] Verschlüsseltes NAS aufsetzen

    Verschoben ROCKPro64
    12
    0 Stimmen
    12 Beiträge
    3k Aufrufe
    FrankMF
    Da btrfs bei mir ja nicht so der Bringer war, Fehler im Image vom Kamil?, Fehler in btrfs? Ich weiß es nicht, also weg damit! Da ich das NAS noch richtig produktiv genutzt hatte, waren die Daten schnell gesichert. Danach das NAS neugestartet, nun sind die beiden Platten nicht mehr gemountet und wir können damit arbeiten. ACHTUNG! Ich bitte wie immer darum, das Gehirn ab hier einzuschalten! Sonst droht Datenverlust! Aus Sicherheitsgründen gebe ich hier die Laufwerke so an = sdX1 Das X bitte entsprechend austauschen! Die beiden Platten mit sudo fdisk /dev/sdX neu einrichten. Alte Partition weg, neu einrichten usw. Im Detail gehe ich hier jetzt nicht drauf ein. Ich gehe davon aus, das das bekannt ist. Der Plan raid_pool0 = sdX1 = /dev/mapper/raid_pool0 raid_pool1 = sdX1 = /dev/mapper/raid_pool1 Verschlüsseln sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1 sudo cryptsetup --key-size 512 --hash sha256 --iter-time 5000 --use-random luksFormat /dev/sdX1 Platten entschlüsseln sudo cryptsetup open /dev/sdX1 raid_pool0 sudo cryptsetup open /dev/sdX1 raid_pool1 RAID1 anlegen sudo mdadm --create /dev/md0 --auto md --level=1 --raid-devices=2 /dev/mapper/raid_pool0 /dev/mapper/raid_pool1 sudo mkfs.ext4 /dev/md0 Script zum Entschlüsseln und Mounten crypt.sh #!/bin/bash ###############################################################################$ # Autor: Frank Mankel # Verschlüsseltes Raid1 einbinden! # # Hardware: # ROCKPro64v2.1 # PCIe SATA Karte # 2St. 2,5 Zoll HDD Platten a 2TB # # Software: # bionic-minimal 0.7.9 # Kontakt: frank.mankel@gmail.com # ###############################################################################$ #Passwort abfragen echo "Passwort eingeben!" read -s password echo "Bitte warten......" #Passwörter abfragen echo -n $password | cryptsetup open /dev/sdX1 raid_pool0 -d - echo -n $password | cryptsetup open /dev/sdX1 raid_pool1 -d - #Raid1 mounten mount /dev/md0 /mnt/raid echo "Laufwerke erfolgreich gemountet!" Bis jetzt sieht das Raid ok aus, ich werde das die nächsten Tage mal ein wenig im Auge behalten. [ 82.430293] device-mapper: uevent: version 1.0.3 [ 82.430430] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised: dm-devel@redhat.com [ 108.196397] md/raid1:md0: not clean -- starting background reconstruction [ 108.196401] md/raid1:md0: active with 2 out of 2 mirrors [ 108.240395] md0: detected capacity change from 0 to 2000260497408 [ 110.076860] md: resync of RAID array md0 [ 110.385099] EXT4-fs (md0): recovery complete [ 110.431715] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: (null) [57744.301662] md: md0: resync done.
  • NodeBB - Upgrade auf v1.9.0

    NodeBB
    2
    1
    0 Stimmen
    2 Beiträge
    872 Aufrufe
    FrankMF
    Da oben fehlt ein Schritt. cd nodebb (or path to where nodebb is installed) ./nodebb stop git fetch git checkout v1.12.x git merge origin/v1.12.x ./nodebb upgrade Beim nächsten Upgrade testen.