プロジェクトの「スマート」キャッシング メカニズムを構築しようとしています。プロジェクトについて簡単に説明します。これはソーシャル ネットワークであり、ほとんどが読み取り中心であり、さらにいくつかのリアルタイム処理のために nodejs への websocket 接続があります (チャットなど)。
これは、このようなキャッシュメカニズムを構築する良い方法ですか? この方法を使用して得た長所と短所は何ですか?
function loadUser($id) {
$user_key = 'user_'.$id;
if( $user = Zend_Registry::get($user_key)) ) {
return $user;
}
elseif( $user = loadFromRedis($user_key) ) {
Zend_Registry::set($user_key, $user);
}
else {
$user = loadFromMysql($user_key)
setToRedis($user_key, $user);
setKeyExpire(30);
Zend_Registry::set($user_key, $user);
}
return $user;
}