現在、2 つの並べ替えられたセットがあり、1 つのセットからすべてのスコアとメンバーを取得し、それを使用して他のセットからメンバーを削除しようとしています。私が使用しているモジュールは node_redis です。
現在client.zrange()
、応答を呼び出して配列に保存することで、メンバーとスコアを取得しようとしています。
返信が配列形式であると仮定するのは正しいですか? redis apiが「複数一括返信」を返すと言っていることに気づきましたが、それは正確にはどういう意味ですか?配列でない場合、どのように使用しますか?
また、別の質問があります。それは、使用するときに配列を使用できzadd()
ますか? 例はこのようになります。
client.zadd(historyKey, scores, members, function(err, reply){});
スコアとメンバーは配列です。
編集:
SNMP トラップの受信と解析に取り組んでいます。基本的にトラップを受信し、そのアラーム タイプを確認します。これらのトラップで役立つ情報は、アラーム タイプと完全なトラップ名です。アラームが 0、1、2 のいずれであるかを確認します。
1 の場合は、受け取った unix 時に現在のソート済みセットに格納します。0 または 2 の場合、そのタイプのアラームが完了していることがわかります。現在のセットからそのようなすべてのトラップを削除し、受信したばかりのトラップと一緒に履歴セットに入れる必要があります。
Current からトラップを削除して History に入れるには、Current セットのどこにトラップが配置されるかを追跡するために、個々のトラップごとに個別のセットを作成する必要がありました。
つまり、トラップ「RGB Gamut Error( ----Bb )」を 1346276537 で受信して Current に保存すると、正確なスコアとメンバーもキー「IPAddress:RGB Gamut Error」を使用して別のセットに保存されます。
そうすれば、「RGB Gamut Error」という名前のアラーム タイプ 0 または 2 を受信したときに、その前に IP アドレスを追加し、zrange
そのセットを実行してから、履歴に追加し、現在から削除することができます。最後に、「IPAddress:RGB Gamut Error」セットを削除して、最初からやり直します。
補足: 私のメンバーは、実際には、各メンバーを一意にし、互いに上書きしないようにするために、末尾に 2 つの番号が追加されています。これは本当に唯一の目的です。
例: IPAdress::RGB Gamut Error( Rr--Bb ):5:46