2017-05-16 3 views
0

純粋にデータの記憶域を扱うAPIを構築しています。フィルタリングされたデータを保存するには?

私は後でコレクションを使用してではなく、 JSONを返すてるので、Eloquent Collectionを保持する、私は20分間キーfoo:123を思い出しましたのは、Redisの内側に想像してみましょう。

例としてのfooコレクションは

[ 
    { 
     "name":"Doe", 
     "first_name":"John", 
     "age":42, 
     "favorite_color":"red" 
    }, 
    { 
     "name":"Example", 
     "first_name":"Eric", 
     "age":37, 
     "favorite_color":"black" 
    }, 
    .... 
] 

ようになりますどのように私は同じ構造しかしfavorite_colorとしてを持つエントリがある新しいコレクションを格納しますか? foo:123:blackのようなものを保存する必要がありますか?コレクション全体を保存し、それを手動でフィルタリングしますか?または、これはRedisを使用するときに完全に異なるのですか?

答えて

1

Q:新しいコレクションを保存するにはどうすればよいですか?構造は同じですが、エントリは「お気に入り」として黒色になりますか?

コレクションをマップしてfavorite_colorを黒に更新してみませんか? https://laravel.com/docs/5.4/collections#method-map。その後、古いデータを上書きするか新しいデータを作成するかのいずれかで保存します。

Q:foo:123:blackのようなものを保存する必要がありますか?

あなたがここで求めていることはわかりません。私は、あなたがそれを保存する方法や命名規則についてどのような答えをあなたに伝えることができるのか分かりません。

Q:完全なコレクションを保存し、手動でフィルタリングしてもよろしいですか?

これは、アプリの要件に基づいて決定する必要があるものです。コレクションをシリアライズして保存することは可能ですが、小さなコレクションのコレクションでこれを行う場合は、リソースが膨大な量になる可能性があります。

+0

1)私は、favorite_colorが* black *と一致するデータベースからすべてのエントリを取得しています。 2)このようなものがkey => valueとして格納されている場合や、リスト/ハッシュ/セットを掘り起こすのが良い点である場合は、問題です。もしそうなら、どのユースケースがそのユースケースに適しているか。 これまでのおかげで! :) – Krenor

+0

ええ、これの多くは、私たちの誰もあなたのアプリケーションについて十分に知っているわけではないので、一般的で意見に基づいています。私はあなたがfooと心配する必要があると言っています:123:黒は競合の名前をつけています(他のものはfoo:123:blackという名前がついていますか?名前。事前最適化にあまりにも多くのエネルギーを費やしてはいけません。何が自然であると感じるか、あまりにも多くのメモリ、CPU、時間などを使用している場合は最適化に取り組んでください。 – Devon

関連する問題