問題タブ [node-redis]
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 - ノード JS Redis クライアント接続の再試行
現在、ノード redis クライアントとしてhttps://github.com/mranney/node_redisを使用しています。
client.retry_delay
デフォルトは 250ms に設定されています。
redis に接続しようとしましたが、接続が成功したら、redis サーバーを手動で停止して、動作するかどうかを確認client.retry_delay
しました。しかし、私はそれが働いているのを見ませんでした。
次のログ メッセージは、 を使用して作成された redisClients のイベントとログに記録さready
れend
ますcreateClient
。
サーバーが稼働状態に戻ったときに、成功メッセージ [ready イベントが発生しませんでした] が再び表示されませんでした。
何か不足していますか?リトライ定数はいつ使用されますか? ノードから障害が発生した後に redis サーバーが起動したかどうかを確認するための回避策はありますか?
node.js - node_redis : forEach 内で client.multi を使用する
デバイスのリストを取得し、それぞれのステータスとラベルを取得する次のコードがあります。
devices は ID のリストです。各 ID には、「ID:status」、「ID:label」の 2 つのキーがあります。
h.respond は、http 応答を送信するヘルパー メソッドです。
各ループで新しいデータが jsonObj に追加されているのがわかりますが、すべてのループが完了すると空になります。
node.js - ノードRedisクライアントがメソッド「HMSET」で動作しない
失敗する次のコード ブロックがあります。
エラー スタックは次のとおりです。
Node Redis クライアントで Node 0.6.17 を実行しています。洞察はありますか?ありがとう!
node.js - Luaスクリプトを使用してRedisにイベントをスローさせることはできますか?
redisコレクションの変更イベントをリッスンし、キーと値をコールバックに渡すことができる抽象化を作成しようとしています。新しいバージョンのLuaスクリプトでこれを行うことができるかどうか疑問に思いました。
ありがとう!
node.js - redis hget はコード スニペットで null を返しますが、redis-cli では機能します
上記は私のコードのスニペットです。redis-cli hget コマンドは、正しいキーとフィールド/値でハッシュが正しく設定されていることを確認する正しい答えを返します。ただし、上記のコード スニペットは hget に対して「null」を返します (convID には hget のフィールドである正しい値があります) - 理由がわかりません -
node.js - Node.js redis "不明なコマンド 'hset'"?
私はredisが初めてで、さまざまな例を試しています。ただし、うまくいかないようです:
node-redis の github ページにあるサンプル スクリプトの 1 つを使用しています。Debian Squeeze を使用しています。
node.js - redisを使用するNodeJS - インストール対hiredisなし?
ノード JS サーバー アプリに redis を統合しています。また、hiredis コマンドを使用して node_redis をインストールするかどうかを検討しています。なんらかの形で役に立たなければ、インストールするオプションは利用できなかったと思います。同時に、node_redis の github ページ (https://github.com/mranney/node_redis) は、nodeJS の新しいバージョンにアップグレードすると、追加されたhiredis オプションで問題が発生する可能性があることを明らかにしています。
ハイレディーを追加することと追加しないことの、書かれていない長所と短所を誰かが説明できますか? C ライブラリを使用すると、パフォーマンスはどの程度向上しますか?
node.js - Redis 再起動時の Node.js + Socket.io および Redis Store の問題
他の誰かが以前にこの問題に遭遇したことを願っています:
問題の説明
redis-store モジュールを使用するように Socket.IO を構成しました。これは、ルームへのブロードキャスト/イベントの発行時にノード インスタンスの同期を維持するのに最適です。ただし、私は障害点をテストしており、redis インスタンスが再起動されると、ノード サーバーが他のノードからのメッセージの受信を停止するようです。
これがsocket.ioクライアントのセットアップ方法です(このコードの前にredis接続が作成されます)
本質的に、socket.io redis-store は、redis がクラッシュ/再起動するたびに、redis を介して他のノード サーバーにイベントを送信し続けることができません。
redis サーバーに再接続するために必要な特別な手順はありますか? この問題の解決策を見つけるためにかなりの時間を費やしましたが、うまくいきませんでした。
よろしく、
-ライアン
node.js - クローズ イベントから Redis 接続が切断されました
私たちの redis 構成では、タイムアウトを設定しました: 7 秒
node_redisでは、redis 接続の準備完了と終了イベントを次のように処理します。
サンプルログ
[2012-07-11 08:21:29.545] [致命的] 生産 - 'xxx9' '6399' への接続が終了しました
[2012-07-11 08:21:29.803] [情報] 生産 - ' への接続が正常に確立されましたxxx9''6399'
しかし、場合によっては (ほとんどの場合、redis はクライアントに通知せずに接続を閉じています)、コマンド キューが積み重なって、リクエストが応答を取得するのに時間がかかりすぎていることがわかります [node-redis クライアントが close イベントを感知できるようになるまで) ]。そのような場合はすべて、このエラーとともにコマンド コールバックが返されますRedis connection gone from close event
。いくら待っても。通常の終了イベントがトリガーされなかったため、タイムアウトのため、これは問題ではないようです。
問題はこれに似ているようです - http://code.google.com/p/redis/issues/detail?id=368
これはredisで起こっている既知のことですか?
クライアントを失速させる代わりに、コマンドの実行 [返信の送受信] がしきい値を超えないように指定し、その場合にエラーで返信する方法はありますか?
または、socket_timeout のような場合にクローズ イベントをトリガーする別の方法はありますか?
それとも、redis 側から何かを確認する必要がありますか? レベルでredis ログを監視しdebug
ましたが、この問題に関連する有用なものは何も見つかりませんでした
node-redis をデバッグ モードで実行すると、コマンド キューにリクエストが積み重なってクライアントが停止していることがはっきりとわかります。flush_on_error関数内の理由とキューの長さをログに記録しました。offline_queuingを無効のままにしています。
サンプルログ
close イベントから Redis 接続が失われました。オフライン キュー 0 コマンド キュー 8
失敗した要求の応答時間: 30388 ミリ秒 [これは、コマンド キューでの待機によって異なります。最初にキューに入れられた人の応答時間は最大であり、彼に続く人はそれよりも遅くなります]
通常の応答時間: 1 ms
PS: node_redis にも問題を提出しました
javascript - node_redisにfindByメソッドを実装しますが、機能しません
すべて。これに続いて、node_redisモジュールにfindBy( "name"、 "password")を実装します。
user.js
ただし、User.findBy(user.name、user.password)関数は未定義を返し、console.log(res)がログに記録されます
{name: "nobinobiru"、password:"harashin0219"}のように
findBy関数がresを返すのはなぜ未定義なのか疑問に思いますが、console.log(res)
正しく機能しています。助けてください。
前もって感謝します。