問題タブ [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 - 非同期コールバックが存在するときに redis ハッシュ コマンドがハングする Node.js
私の目標は、redis に値を保存するノード モジュールをテストする統合テストを実施することです。テストは次のとおりです。
このテストでは、問題は、redis がデータベースをフラッシュする前に redis 接続が閉じられることです (db.end() をまったく削除すると、テストはハングしますが、redis db はフラッシュされます)。どうやら、async.series は、すべての関数が次の関数の前に順番に実行されることを期待しているため、機能していませんか、それとも誤解していますか? フラッシュの前にredis接続が閉じられないように、このテストがシリアルフローで実行されるようにする方法は? ...ここで達成しようとしていることに役立つライブラリ/フレームワークの推奨事項はありますか? ありがとうございました
mysql - mysql の左結合、内部結合、結合を redis で複製する方法
相互参照は良い学習方法だと思います。私はredisについていくつかの調査を行いましたが、スキーマレスデータベースとしてredisにはテーブルがありません。テーブルの代わりに、key-value、key-list、key-set、key-sortedset(zset) のペアがあります。
この種のキーとデータのペア構造は、私にはあまりにもなじみがありません。私はmysql、sqlスタイルのデータベースに慣れています。
ここで sqlFiddleを取得しました。これは、単純な内部結合の例を示しています。
私は頻繁にSQLからこのデータを取得し、次のような意味のあるJSONオブジェクトに再モデル化します:
私の質問は:
redis と node.js でこの種のテーブル構造を模倣するにはどうすればよいですか? 外部キー用の redis コマンドのビルドはありますか? アプリレベルのデータ再モデリングを使用する以外に選択肢がない場合、そのようなプロセスを行うための適切な方法はどのようになりますか。
PS: 相互参照の例と有用なアーティカルが提供されます。
編集: RedisのSINTERコマンドで結合のような操作を行うことができますか?
node.js - node_redis を使用した ZINTERSTORE の動的引数
node_redis を使用して、node.js から redis の ZINTERSTORE コマンドを使用しようとしています。
しかし、client.ZINTERSTORE を呼び出すと、[エラー: ERR 構文エラー] というエラーがスローされます。(tags.join(' ') を使用する代わりに) タグを配列として渡すと、同じエラーがスローされます。
このコマンドの正しい構文はどこにありますか? node_redis のソース コードでは、javascript パーサーに埋め込まれていますが、コードを「ステップスルー」しないと何が起こっているのかを確認するのは困難です。node.js を使用してデバッグを行う良い方法はありますか?
javascript - Node.js でソケットを保存および取得する最も効率的な方法
現在、各プロセスの配列に実際のソケット オブジェクトを格納しています。次に、すべてのプロセス (ワーカー) がアクセスできるようにソケット データを redis に保存します。
ソケットを保存および取得するためのよりパフォーマンス/効率的な方法はありますか、またはこれはほとんどどのように行われますか? sockets 配列が 200k オブジェクトを超える可能性がある場合のパフォーマンスが心配です。
node.js - ソケット io によって表示される重複メッセージ
通知にredisを使用していますが、次のように機能します-
user1 が友人と共有する通知を持っている場合、そのメッセージをユーザーの各友人のすべてのチャネルに公開します。socket.io と node を使用して、サブスクリプション部分が node を使用して処理されるように、メッセージは各フレンドにプッシュされます。
これは、接続が失われるまで正常に機能します。この時点で、再接続すると、最後のケースのようにアクティビティが 1 つしか発生していないにもかかわらず、友人のチャンネルで 1 つではなく 2 つのパブリッシュが発生していることがわかります..
再接続時に重複公開を回避できる構成はありますか?
また、再接続時に、セカンダリトランスポートも使用して接続しようとしています..これは問題になる可能性がありますか?
javascript - Node.jsとRedisをforループで使用してグローバル変数を割り当てる方法は?
「for」ループを使用して GET 要求を反復処理する Node.js の Redis データベースからプログラムで値を取得しようとしています。「redis」ノード モジュールを使用しています。console.log を使用してこれらのリクエストの値をサーバーに出力することはできますが、これらの各値を別の node.js モジュールで使用するためにグローバル配列にプッシュすることはできません。これは、Redis スクリプトの「グローバル変数保護」の側面によるものかどうか疑問に思っています。また、ここで回避策があるかどうかも知りたいです。
redis-cli:
ノード.js:
vals 配列が a、b、および c... または 1、2、および 3 に関連付けられた値をそれぞれ出力するようにしたいと考えています。繰り返しますが、目的はこれらの値を別のノード モジュールで使用することです。
これはグローバル変数の保護に関連する問題ですか? 明らかな代替手段はありますか?明らかな何かが欠けているように感じます。
node.js - エラー ハンドラー Nodejs Redis Connect-domain の失敗
connect-domain を使用してエラーを処理しようとしました。ほとんどの場合は問題ありませんが、redis コールバックで失敗します。これを修正する方法は?
これが私のアプリです
私はnodejs 0.8.16を使用しています。すべてのモジュールは最新です