djangoはセッションエラーredisをredisで格納する.exceptions.ResponseError:NOAUTH Authentication requiredの解決策
1997 ワード
問題の説明
セッションをredisで保存したいのでsettingsにいます.pyファイルでは、次のように設定されています.
しかし、ブラウザにURLを入力してセッションを保存するステップを実行すると、エラーが発生しました.エラーの内容は以下の通りです.
redis.exceptions.ResponseError: NOAUTH Authentication required
エラーメッセージから推測すると、問題はredisのパスワードに現れます.そこでredisのパスワードをキャンセルし(redis.windows.confファイルを変更すればいい)、もう一度試してみました.
今回は間違いを報告していませんが、2つの問題があります.セッションがredisの1番データベースに存在することを望んでいますが、0番データベースに が存在します. redisのsessionキーに接頭辞「session」があることを望んでいます.つまり、session:fvcxhj 3 pcekzsx 7 bmx 892 srvek 6 f 9 pq 7です.しかし、実際には、fvcxhj 3 pcekzsx 7 bmx 892 srvek 6 f 9 pq 7--接頭辞は付いていません.
そして、私はredisのパスワードを削除してプログラムが安定して動作することを保証したことを忘れないでください.しかし、これは私の初心ではありません.私はredisのパスワードを犠牲にしたくないです.
解決策
検証の結果、sessionの格納場所をredisに設定する書き方はもう一つあります.私の実験を経て、上記の3つの問題(パスワードの問題、データベースの問題の指定、接頭辞の問題)を解決することができます.
この書き方は以下の通りです.
質問:
上記の方法で所望の効果が得られたが,問題は解決された.しかし、私はまだ最初の方法がなぜ正しく実行できないのか分かりません.私が使用している様々なツールのバージョンを添付します.
python 3.7 + django 2.1.7 + redis 3.0.504 + django-redis-sessions 0.6.1
私と同じ問題に遭遇した仲間は、まず私の解決方法を試してみることができます.问题の根源を知っている友达にも教えてもらいたいので、先にお礼を言いました.
もしこのブログがあなたを助けてくれたら、いいねをしてください(#^.^#)
有疑问也欢迎留言~博主可nice了,在线秒回ヾ(◍°∇°◍)ノ
セッションをredisで保存したいのでsettingsにいます.pyファイルでは、次のように設定されています.
# session redis
SESSION_ENGINE='redis_sessions.session'
# ip
SESSION_REDIS_HOST='localhost'
# redis
SESSION_REDIS_PORT=6379
# redis 1 session(redis 16 , 0 )
SESSION_REDIS_DB=1
# redis
SESSION_REDIS_PASSWORD='mypassword'
# redis session "session", session
SESSION_REDIS_PREFIX='session'
しかし、ブラウザにURLを入力してセッションを保存するステップを実行すると、エラーが発生しました.エラーの内容は以下の通りです.
redis.exceptions.ResponseError: NOAUTH Authentication required
エラーメッセージから推測すると、問題はredisのパスワードに現れます.そこでredisのパスワードをキャンセルし(redis.windows.confファイルを変更すればいい)、もう一度試してみました.
今回は間違いを報告していませんが、2つの問題があります.
そして、私はredisのパスワードを削除してプログラムが安定して動作することを保証したことを忘れないでください.しかし、これは私の初心ではありません.私はredisのパスワードを犠牲にしたくないです.
解決策
検証の結果、sessionの格納場所をredisに設定する書き方はもう一つあります.私の実験を経て、上記の3つの問題(パスワードの問題、データベースの問題の指定、接頭辞の問題)を解決することができます.
この書き方は以下の通りです.
# session redis
SESSION_ENGINE = 'redis_sessions.session'
#
SESSION_REDIS = {
# redis ip
'host': 'localhost',
# redis
'port': 6379,
# redis
'db': 1,
# redis
'password': 'mypassword',
#
'prefix': 'session',
#
'socket_timeout': 1
}
質問:
上記の方法で所望の効果が得られたが,問題は解決された.しかし、私はまだ最初の方法がなぜ正しく実行できないのか分かりません.私が使用している様々なツールのバージョンを添付します.
python 3.7 + django 2.1.7 + redis 3.0.504 + django-redis-sessions 0.6.1
私と同じ問題に遭遇した仲間は、まず私の解決方法を試してみることができます.问题の根源を知っている友达にも教えてもらいたいので、先にお礼を言いました.
もしこのブログがあなたを助けてくれたら、いいねをしてください(#^.^#)
有疑问也欢迎留言~博主可nice了,在线秒回ヾ(◍°∇°◍)ノ