質問

私はRedisのを試して、私は本当にそれがテーブルにもたらすスケーラビリティのようにされています。しかし、私は生産ですでにのシステムのためのデータ構造への変更を処理する方法を疑問に思っています。

たとえば、私は、ユーザーに関する情報を収集しています、と私はキーとしてのuser_idを使用して、カンマ区切り値としてユーザーに関する他のデータをダンプすることを言わせます。

user_id: name, email, etc.

さて、言う約100,000を記録した後、私はemailにより、クエリに必要なことを実現? - どのように私は今、既存のデータのスナップショットを取り、それのために新しいインデックスを作成します。

役に立ちましたか?

解決

のRedisの私の理解から、これはRedisのが行うように設計されていない何かを必要とします。あなたはすべてのあなたの記録(*キーを使用して)にもかかわらずループに持っているし、データの順序を変更し、新しいキーになるだろう。私は、個人的には、文字列を分離代わりにコンマのリストを使用することをお勧めします。リストでは、内部のRedisからそれを並べ替えることができます。次のようなA Redisのリストになります。

"Colum" => [0] c.mcgaley@gmail.com
            [1] password
            [2] Something

私は同じ問題に遭遇したアプリを構築しています。私は、すべてのユーザーの情報のためのリストを持つことによってそれを解決し、ユーザーのIDの値を持つユーザーの電子メールでキーを持っています。

:だから私のデータベースには、このようなものだろう
"Colum" => [0] c.mcgaley@gmail.com
            [1] password
            [2] Something
"c.mcgaley@gmail.com" => "Colum"

私は、IDやメールを照会し、まだ私は必要な情報を得ることができるようにします。

私は直接あなたの質問に答えることができなかったことを申し訳ありません。ただ、これは助けを願っています。

他のヒント

あなたが変更をサポートしたい場合は、

は、CSVを使用すると、素晴らしいアイデアではありません。あなたはすべてが一つのキーである場合、ハンドルは/新しい値を欠落している、またはあなたがあなたの名前のサブキーを与えRedisのハッシュを、使用することができますシリアライザを使用する必要があります。いずれにせよ、あなたは唯一の要件は、あなたのコードは、それが新しい値なしでレコードを読み込む場合に何をすべきか知っていることで/削除フィールドを追加することができます。

値としてユーザIDと各電子メールのために基本的にキー(またはリスト) - あなたは、インデックスを追加する必要が電子メールで検索できるようにするには、

。あなたは、その後、一度すべてのキーを取得する電子メールが変更されたときに必ず、あなたがそれを更新することによって、このインデックスを移入する必要があります。

あなたはすべてのキーを反復処理し、異なるIDでそれらを保存するが、それはおそらく、それは価値があるよりも多くの問題である可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top