redisを使用してすばやく学習することの1つは、特にリレーションに関しては、アクセスのニーズに合わせてデータ構造を設計できることです(結局のところ、リレーショナルデータベースではありません)
すでに気付いたように、O(1)の時間計算量で「値」で検索する方法はありませんが、redisを使用して説明する内容にアプローチする方法はあります。これが私がお勧めするものです:
- すでに行っているように、ユーザーID(ハッシュなど)でユーザーデータを保存します。
- 問題の講師IDに対応するすべてのユーザーIDを含む各講師IDの追加セットを用意します。
ユーザーデータには講義IDを保存する必要があり、講義データにはユーザーIDを保存するため、これは関係のデータを複製しているように見えるかもしれませんが、関係を構築する場合の(わずかな)代償です。 -redisのようなリレーショナルデータストア。実際には、これはうまく機能します。小さなデータセット(数千のIDを考えてください)のボトルネックになることはめったにありません。
人々がredisを使用してリレーションを持つアプリケーションをモデル化する方法をよりよく理解するには、単純なTwitterクローンの設計と実装、およびLamernewsのソースコードを読むことをお勧めします。どちらもredisの作成者であるSalvatoreSanfilippoによって作成されています。