アイテムのリストをセットに保存するためにredisを使用しています。私は定期的に非常によく似たリストをセットに追加しますが、明らかに、ソートされたセットは、新しいアイテムがまだ存在しない場合にのみ追加します。追加されたばかりの新しいアイテムのリストを取得する方法はありますか?セットにまだ存在していなかったものは?
ダンケシェーン。
アイテムのリストをセットに保存するためにredisを使用しています。私は定期的に非常によく似たリストをセットに追加しますが、明らかに、ソートされたセットは、新しいアイテムがまだ存在しない場合にのみ追加します。追加されたばかりの新しいアイテムのリストを取得する方法はありますか?セットにまだ存在していなかったものは?
ダンケシェーン。
ZADD
コマンドは、1つのスコア/メンバーのペアで呼び出された場合、メンバーが新規の場合は1を返し、メンバーが既に存在する場合は0を返します。これを使用できます。要素を1つずつ追加し、戻り値を確認します。
Sergioによって説明されているように新しいリストを反復処理することに加えて、ソートされたセットのキーをセットに格納し、新しいリストをセットに格納し、それらに対してsdiffまたはsdiffstoreを実行して違いを取得できます。
どちらのルートが優れているかは、コードとデータセットに基づいた判断の呼びかけです。新しいリストが短い場合は、Sergioが説明しているようにzaddコマンドを使用して単純な反復を行う可能性があります。それ以外の場合は、どちらが私のユースケースに適しているかをテストします。