これを行うにはいくつかの方法がありますが、正しい方法は何をしようとしているかによって異なります。例:
- 各
FEED:USER:n
のコードでZRANGEBYSCORE(またはZREVRANGEBYSCORE)を使用できます キーを押して、クライアントの返信を「マージ」します - 関連するキーに対してZUNIONSTOREを実行してから、クライアントからの結果に対してZRANGEBYSCOREを実行できます。
- ただし、「フィード」が大きい場合は、#2のフローを逆にする必要があります。最初に範囲、次にユニオンです。
- Luaスクリプトを使用して、同様のタイプの処理を完全にサーバー側で実行することもできます。
編集:さらなる説明
再。 1-マージは、ZRANGEBYSCOREから取得した結果に対してクライアント側で実行することも、サーバー側のLuaスクリプトを使用して実行することもできます。 WITHSCORESを使用してタイムスタンプを取得し、そのタイムスタンプをマージ/ソートします。このコードを実行する場所の選択に関係なく(おそらくデータのローカリティにはLuaを使用します)、実装はあなた次第です-それについてサポートが必要な場合はlmk :)