古い MySQL ベースのユーザー管理システムを Redis に変換していますが、いくつかの問題が発生しました...
システムの基盤として HASH と SET の組み合わせを使用しています。
いくつかの疑似コード
let uid=incr user_id_counter
hset joe@dom.com user user:uid
hset user:uid email joe#dom.com
hset user:uid gender m
hset user:uid year_of_birth 1972
hset user:uid fav_band acdc
sadd maleUsers uid
sadd born1972Users uid
この時点ですべてが順調で、たとえばsinterを使用して検索できます。
sinter maleUsers born1972
or
sinter femaleUsers born1980
これは、誕生の年ごとに別のセットを作成することを前提としています
sad bornXXXX uid
これは私が満足できるものですが、お気に入りのバンドをどのように処理しますか? 確かに、すべての可能なバンドのセットを作成しませんか?
最終的には、次のような詳細な検索ができるようにしたいと考えています。
sinter maleUsers born1980 genreRock genreMetal homeTownSydney
リレーショナル クエリを行うより洗練された方法はありますか?