初めての Redis データベースを設計しました。フィードバック、提案、またはヒントが欲しいです。
概要:
私の redis データベースには記事が保存されており、後でいいね、作成日、更新日、作成者などで並べ替えることができます...
記事には「アイテム」も含まれており、どの記事に少なくとも 1 つのアイテムが含まれているかを判断する必要もあります。
創造
新しい記事が作成されると、その ID をさまざまなキーに書き込みます
ZADD 'articles:created' タイムスタンプ ArticleID
ZADD 'articles:updated' タイムスタンプ ArticleID
ZADD 'articles:likes' 0 ArticleID
SADD 'user:USERID:articles' ArticleID
記事が更新されるたびに
ZADD 'articles:updated' タイムスタンプ ArticleID
アイテムが記事に追加されるたびに
ZADD 'articles:itemCount' ItemCount ArticleID
アイテムが削除され、アイテムが残っていない場合は、そのメンバーを削除するだけです
ZREM 'articles:itemCount' ArticleID
したがって、ソートに関しては、次のようにします。
- 「articles:likes」と「articles:updated」で ZUNIONSTORE を実行します
- 結果を使用して、結果と 'articles:itemCount' に対して ZINTERSTORE を実行します。
- その結果、ZREVRANGEBYSCORE を実行するだけです。
これはすべて機能し、私がやりたいことを見つけて実行しますが、私は Redis を初めて使用し、提案と改善を受け入れます。
心から、
-- ジェームズ