キューから複数のレコードを処理する必要があります。しかし、いくつかの外部の問題のために、アイテムは散発的に複数回現れる可能性があります。 アイテムを1回だけ処理する必要がありますRedis PFADDがセット内に存在するクエリを確認する
私が使用する予定だったのは、すべてのレコードを(md5sumとして)redisに変換し、成功したかどうかを確認することです。それが増分を示さないならば、そのレコードは重複したものであり、他のものはそのレコードを処理する。
これを行うには良い方法はありPFADD
を使用しながら、これは非常に簡単そうですが、私はあまりにも多くの偽陽性を取得していますか?まさにワンス処理何かがしかし、これは便利だろう、最高1回
- :分散システムで一般的に
私はHSETが良い解決策であると考えています.NXオプションの通常のSETも良いオプションです。キューの中のアイテムがピリオドの後に繰り返されない場合は、有効期限を追加できます。 – PerroVerd
@PerroVerd正確にそれについては気が散った)。基本的なRedis操作は通常十分です(唯一のことはデータベース全体のスキャンを避け、キー間の関係を単純に保つことです)。 – nha
@nha Setの代わりに "ブーリアン"ハッシュを使うのは、厄介なだけでなく、fasle/0のエントリも保存することをお勧めしているので、無駄ではありません(Redis 'Setsは内部的にハッシュで実装されています。 ** ** **メンバーシップテストの自然な選択です。あなたの最後の編集で解答が減るだけです。ハッシュコリジョンに関する部分は実際には非常に正確ですが、不正確になってしまいます。最後に、セットは完全にクラスターセーフであり、データ構造に関係なくサポートされないマルチキークロススロット操作です。 –