Verwalten der Verbindung zu redis von Python

Ich verwende redis-py in meiner Python-Anwendung, um einfache Variablen oder Listen von Variablen in einer Redis-Datenbank zu speichern, also dachte ich, es wäre besser, eine Verbindung zum Redis-Server zu erstellen, jedes Mal, wenn ich eine Variable speichern oder abrufen muss Ist nicht sehr oft und will nicht eine dauerhafte Verbindung haben, die Zeitüberschreitung haben könnte.

Lesen Sie durch einige grundlegende Tutorials Ich habe die Verbindungen mit der Redis-Klasse, aber habe nicht einen Weg gefunden, um die Verbindung zu schließen, wie dies ist das erste Mal, wenn ich mit Redis. Ich bin mir nicht sicher, ob ich mit dem besten Ansatz für die Verwaltung der Verbindungen, so würde ich gerne einige Ratschläge für diese. Dies ist, wie ich bin ting oder ting eine Variable jetzt:

 import redis def getVariable(variable_name): my_server = redis.Redis("10.0.0.1") response = my_server.get(variable_name) return response def setVariable(variable_name, variable_value): my_server = redis.Redis("10.0.0.1") my_server.set(variable_name, variable_value) 

Ich benutze grundsätzlich diesen Code, um die letzte Verbindungszeit zu speichern oder um einen Durchschnitt von Anfragen pro Sekunde auf meine App und so etwas zu bekommen.

Danke für deinen Rat.

  • Äquivalentes C ++ - Pythongeneratormuster
  • Wie spalte ich einen Python-Generator von Tupeln in 2 separate Generatoren?
  • Länge eines endlichen Generators
  • Pythongenerator mit Kontrolle auf leeren Zustand
  • Wie bekomme ich einen Wert von einem Generator in Python?
  • Generatoren von Generatoren erzeugen
  • 2 Solutions collect form web for “Verwalten der Verbindung zu redis von Python”

    Python verwendet einen Referenzzählermechanismus, um mit Objekten umzugehen, so dass am Ende der Blöcke das my_server-Objekt automatisch zerstört und die Verbindung geschlossen wird. Du musst es nicht explizit schließen.

    Jetzt ist das nicht so, wie du Redis-Verbindungen verwalten solltest. Das Anschließen / Trennen für jede Operation ist zu teuer, so dass es viel besser ist, die Verbindung geöffnet zu halten. Mit redis-py kann man es tun, indem man einen Pool von Verbindungen erklärt:

     import redis POOL = redis.ConnectionPool(host='10.0.0.1', port=6379, db=0) def getVariable(variable_name): my_server = redis.Redis(connection_pool=POOL) response = my_server.get(variable_name) return response def setVariable(variable_name, variable_value): my_server = redis.Redis(connection_pool=POOL) my_server.set(variable_name, variable_value) 

    Bitte beachten Sie, dass das Pool-Pool-Management meistens automatisch ist und innerhalb von redis-py durchgeführt wird.

    @ Sg1990 was, wenn Sie 10.000 Benutzer benötigen redis zur gleichen Zeit? Sie können nicht eine einzelne Verbindung teilen und Sie haben gerade einen Flaschenhals geschaffen.

    Mit einem Pool von Verbindungen kannst du eine beliebige Anzahl von Verbindungen erstellen und einfach get_connection() und release() aus redis-py docs verwenden .

    Eine Verbindung pro Benutzer ist ein riesiges Overkill, da jede Verbindung eine offene Steckdose pflegen muss. Auf diese Weise würden Sie automatisch eine Anzahl von zB gleichzeitigen Webserverbenutzern verringern, die Ihr Gerät um die Hälfte verarbeiten kann.

    Python ist die beste Programmiersprache der Welt.