0

私はmemcacheで作業しなければならないデータストアプロジェクトに取り組んでいます。しかし、前にmemcacheを使ったことがないので、私はそれと混同しています。私はthisのリンクをたどり、memcacheから値を正常に保存して取り出しました。memcacheに保存されたデータストア内のデータを更新するにはどうすればよいですか?

$memcache = new Memcache; 
$value = $request->getContent(); 
return $memcache->set($key, $value); 

$memcache = new Memcache; 
return $memcache->get($key); 

私は、ユーザーの詳細を取得し、memcacheにそれを保存したいときに、これは私のために十分です。しかし、問題は、memcacheの値をデータベースに挿入することです。私はそれにどのように接近すればいいですか?ユーザーの編集内容をmemcacheに保存する必要があるかどうか、またログアウトするときには、最初にすべての変更をデータストアに保存するか、後で変更できるいくつかのソリューションがありますか?私を助けてください。

+2

memcachedについてもっと読む。 memcacheには保証がないため、データが失われる可能性があり、それは設計によるものであるため、すぐにデータストアに保存しないことをお勧めします。 –

+0

こんにちは@ZigMandel、私は実際にデータを更新または挿入するために頻繁にAPIコールを保存したかった。それは私が考えると費用効果が高いだろう。私に教えてもらえますか? – MKB

+1

はい、あなたはmemcachedにコミットしておくことができますが、毎秒何回もコミットしていない限り、あなたを助けません。それは可能ですが、それをコミットするときは非常によく考える必要があります。 "ログアウト"には間違いありません –

答えて

1

「memcacheからデータベースにデータを挿入する」とは考えないでください。特にこれには何もありません。あなたはちょうどmemcacheから検索されたばかりの(通常の方法で)データをデータベースに挿入しています。

+0

こんにちは@ダン...私はデータベースにデータを書き込むためにAPI呼び出しを減らしたいので止まっています。たとえば、私は情報を取得し、あなたの要求に従って更新する必要のあるユーザーエンティティを持っています。しかし、ユーザーが1つのフィールドでも更新するたびに、データストアへの要求が行われます。どのように私はそれを防ぐ必要がありますか? – MKB

+0

は質問に答えてくれないようです(コメントではなく回答として良いヒントです) –

+1

@MKB:データストアに**書き込み**するためのバッファとしてmemcacheを使用しないでください。 memcache情報はいつでも消えてしまう可能性があります(最終的には)、memcache操作はトランザクションで保護されません。 –

関連する問題