Python による Redis へのアクセスに関する問題

高洛峰
リリース: 2017-02-15 14:59:14
オリジナル
1626 人が閲覧しました

今日、Python を使用してこのマシン (Windows) 上の Redis にアクセスするときにエラーが発生しました。 2 種類のエラーがあります。
Sentinel を設定すると、不明なコマンド 'SENTINEL' のようなエラーが報告されます。
StrictRedis を設定すると、 , NOAUTH Authentication required エラーが報告されます。

マークを付けて、明日解決策を見つけてください。 。 。 。

追記: mongo 接続の失敗は、パスワードが設定されていないことが原因であることが最終的に判明しました (実際には、オンライン構成がオフライン構成とみなされたためでした...)
最初のエラーについては、会社に問題がありましたこのようなエラーの主な理由は、sentinel が起動していないことです。ただし、この会社には 3 台の redis Sentinel マシンがあり、そのうちの 1 台がダウンすると、もう 1 台が停止します。 2 台のマシンがまだ 1 台をマスターとして選出できません。これは、Redis 構成を行うときに、どの一時ワーカーが選出マシンを 3 に設定したかがわからないため、1 台のマシンがダウンしている限り選出されません。実際には、構成を n ~ m に変更する必要があります。n はマシンの数、m は障害が許容されるマシンの数です。

以下に Redis コードを添付します:

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)
ログイン後にコピー

Python による Redis へのアクセスに関するその他の問題については、PHP 中国語 Web サイトの関連記事に注意してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!