0

私は Web アプリケーションに取り組んでおり、memcached の仕組みを理解しようとしています。

私の質問は、memcached を使用して最良の結果を得る方法についてです。

アプリケーションでは、各ユーザーがログインすると、SQL クエリが 7 ~ 8 個のテーブルをチェックし、結果を配列で取得します。その配列をmemcachedにキャッシュすることを考えていました。しかし、それはどのように機能するのでしょうか?

memcached で一意のキーを使用して、ユーザーごとに配列をキャッシュする必要がありますか?

そして、その配列をどのように更新すればよいですか? cronジョブまたは何を使用しますか?

事前にあなたのアイデアをありがとう。

4

1 に答える 1

0

一意のキーを使用してユーザーがデータをキャッシュする必要があるかどうかは、データがそのユーザーに対して一意であるかどうかによって異なります。また、配列を更新する方法は、データがどのように変更されたかによって異なります。したがって、一般的に、あなたの質問に答えることは不可能であり、特定の質問に戻る前にいくつかのチュートリアルを読む必要があります.

出力が渡された引数のみに依存する関数があると仮定すると、それらの引数からキーを作成できます (たとえば、これはユーザー データを取得する関数であり、$userId を渡しています。キーは userdata/$userId である可能性があります)。関数の戻り値をキャッシュできます

function get_user_data($userId) {
    $cacheKey = 'userdata/' . $userId;
    $result = cache::instance()->get($cacheKey);
    if ($result == false) {
       // body of the function
       cache::instance()->set($cacheKey, $result);
    }
    return $result;
}

無効化に関しては、一部のデータが変更された場合は、memcache からキーを削除するだけです

于 2012-04-14T17:04:32.697 に答える