Heim  >  Artikel  >  Backend-Entwicklung  >  Problem mit Python beim Zugriff auf Redis

Problem mit Python beim Zugriff auf Redis

高洛峰
高洛峰Original
2017-02-15 14:59:141648Durchsuche

Heute ist bei der Verwendung von Python für den Zugriff auf Redis auf diesem Computer (Windows) ein Fehler aufgetreten. Es gibt zwei Arten von Fehlern:
Wenn ich Sentinel konfiguriere, wird ein Fehler wie der unbekannte Befehl „SENTINEL“ gemeldet 🎜>Wenn ich StrictRedis konfiguriere, wird ein NOAUTH-Authentifizierungsfehler gemeldet.

markieren Sie ihn und wir werden morgen eine Lösung finden. . . .

ps: Es wurde schließlich festgestellt, dass die Mongo-Verbindung fehlgeschlagen war, weil das Passwort nicht festgelegt war (eigentlich lag es daran, dass die Online-Konfiguration als Offline-Konfiguration angesehen wurde...)

Für den ersten Fehler, das Unternehmen Vor kurzem ist ein Problem aufgetreten, und der Hauptgrund dafür war, dass Sentinel nicht gestartet wurde. Das Unternehmen hatte jedoch drei Redis-Sentinel-Maschinen Die anderen beiden Maschinen konnten nicht als Master verwendet werden, da ich bei der Redis-Konfiguration nicht weiß, welcher temporäre Worker die Wahlmaschine konfiguriert hat gewählt werden. Tatsächlich sollte die Konfiguration in n-m geändert werden, wobei n die Anzahl der Maschinen und m die Anzahl der Maschinen ist, die ausfallen dürfen.

Im Anhang finden Sie den Redis-Code wie folgt:

import redis
import ConfigParser
import redis.sentinel


class RedisConn:
    _rp = None

    def __init__(self):
        cp = ConfigParser.SafeConfigParser()
        cp.read('avatar_redis.conf')
        host = cp.get('redis', 'host')
        port = cp.get('redis', 'port')
        db_name = cp.get('redis', 'dbName')
        pass_word = cp.get('redis', 'passWord')
        self._rp = redis.StrictRedis(host=host, port=port, db=0, password=pass_word)
        # = redis.ConnectionPool(host=host, port=port, db=0, password='')
        #sentinel = redis.sentinel.Sentinel([(host, port)], socket_timeout=0.1)
        #self._rp = sentinel.master_for(db_name, socket_timeout=0.1)
        #self._rp = redis.Redis(connection_pool=conn_pool)

    def get_conn(self):
        return self._rp

    def set_value(self, key, value):
        self._rp.set(key, value)

    def get_value(self, key):
        return self._rp.get(key)
Für weitere Probleme bezüglich des Python-Zugriffs auf Redis beachten Sie bitte die PHP-Chinese-Website für verwandte Artikel!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn