問題タブ [ioredis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Redis センチネルがマスターに接続されていません: エラー: READONLY 読み取り専用スレーブに対して書き込むことはできませんか?
私は建築家とこれredis replication
を持っています:sentinel
5 台のサーバー: .1
、.2
、.3
、.4
および.5
.1
: nodejs アプリ、redis マスター、redis センチネル.2
: nodejs アプリ、redis スレーブ.3
: nodejs アプリ、redis スレーブ.4
: redis センチネル.5
: redis センチネル
Sentinel は期待どおりにフェイルオーバーを処理します。
redis-cli -h x.y.z.5 -p 26379 sentinel get-master-addr-by-name mymaster
常にリターン.1
サーバーです。
このレプリケーションに接続するための私のコード ( ioredisを使用):
次に、.1
nodejs アプリは正常に実行されますが、.2
と.3
で、次のログでエラーが発生します。
P/s: 私の redis サーバーは、サーバー IP と127.0.0.1
. がない127.0.0.1
と、次のエラーが発生するためです。
だから、私のアプリはredis server
経由sentinel
ではなく、直接接続していると思いlocalhost
ます。
どんな助けも感謝しています!
更新:オンにするとログに記録しますDEBUG=ioredis:*
:
更新 2: もう 1 つ、環境を使用してローカル マシンでアプリを実行するproduction
と、すべてが魅力的に機能します!!!
promise - ioredis bluebird プロミスがハンドラーで作成されましたが、ハンドラーから返されませんでした
この警告が表示される理由を誰かに説明してもらえますか警告: プロミスはハンドラーで作成されましたが、次のコードを実行するとハンドラーから返されませんでした:
残りのコードは次のとおりです。
私は次のライブラリを使用しています: ioredis & bluebird. コードは正常に実行され、すべてが正常に機能します。解決できない警告が表示されるという事実が気に入らないだけです。