私は他の人が読むことができるテキストメッセージを投稿するWebアプリケーションを持っています。redisで並べ替えられたセットを使用するための代替データモデル(Django/Pythonプロジェクトの場合)
最新のmessage_id
とポスターのuser_id
のペア(後で処理するため)を保存する必要があります。私はredisバックエンドを使用して、並べ替えられたセットにこれらの最新の50ペアを保存することができることを認識しました:user_id
を値に、message_id
をスコアとして保存します。
今度はuser_id
が繰り返されるので、NX
フラグをtrue
に設定する必要があります。これにより、the docsによれば、新しいメンバーが既存のものを更新するのではなく、ソートされたセットに確実に追加されます。これは、同じユーザーが複数回メッセージを投稿した場合、既存のメッセージを上書きするのではなく、新しいエントリがソートされたセットに追加されるためです。これにより、データは正常に保たれます。
私のアプリケーションではPythonが使用されていて、redis 2.8.4(使用しているバージョン)ではNXフラグが導入されていませんでした。
redisを使用して最新のmessage_id
とuser_id
のペアを効率的に保存するには、どのような方法がありますか?お知らせ下さい。価値と私のために動作しませんスコアとしてソートセットでmessage_id
とuser_id
スイッチング
。どうして?並べ替えられたセットが最新の50エントリしか保存しないようにするため、設定されたカーディナリティが50を超える場合はzremrangebyrank
にする必要があります。user_id
の代わりにがscore
の場合にのみ機能します。私はそれが理にかなったことを願う