ホームページ >バックエンド開発 >PHPチュートリアル >Redis フロントエンド キャッシュをインストールするための PHP スクリプト
1、Redis フロントエンドに存在する PHP 本来:http://www.shenbogame.com.com/wordpress-with-redis-as-a-frontend-cache/
の後の最下部に表示されます。 セットアップと構成については、こちらを参照してください: www.jeedo.net/lightning-fast-wordpress-with-nginx-redis/ このスクリプトはご自身の責任で使用してください。私は現在これを少しではありますが使用しています
キャッシュが表示されるたびに Redis バッジを表示するように修正されたバージョン。 */ // ここで変数を変更します $cf = 1;// Cloudflare を使用している場合は 1 に設定 $debug = 0;// 実行時間とキャッシュ アクションを確認したい場合は 1 に設定 $display_powered_by_redis = 1; // 実行時間とともに powered by redis メッセージを表示する場合は 1 に設定します。以下を参照してください $start = microtime(); // ページ実行のタイミングを開始 // Cloudflare の場合
は有効です if ($cf) { if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP']; } } // wp から define('WP_USE_THEMES', true); // init predis include("predis.php"); $redis = 新しい PredisClient('');
// init vars $domain = $_SERVER['HTTP_HOST']; $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $url = str_replace('?r=y', '', $url); $url = str_replace('?c=y', '', $url); $dkey = md5($domain); $ukey = md5($url); // ページがコメントではないかどうかを確認します
送信 (isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0') ? $submit = 1 : $submit = 0; // wp にログインしているかどうかを確認 $cookie = var_export($_COOKIE, true); $loggedin = preg_match("/wordpress_logged_in/", $cookie); //
ページのキャッシュが存在するかどうかを確認します if ($redis->hexists($dkey, $ukey) && !$loggedin && !$submit && !strpos($url, '/feed/')) { echo $redis- >hget($dkey, $ukey); $キャッシュ = 1; $msg = 'これはキャッシュです'; // コメントが送信された場合、またはページをクリアした場合
キャッシュ リクエストが行われました ページのキャッシュを削除します } else if ($submit || substr($_SERVER['REQUEST_URI'], -4) == '?r=y') { require('./wp-blog-header. php'); $redis->hdel($dkey, $ukey); $msg = 'ページのキャッシュが削除されました'; // キャッシュ全体を削除します。動作のみ
ログインしている場合 } else if ($loggedin && substr($_SERVER['REQUEST_URI'], -4) == '?c=y') { require('./wp-blog-header.php'); if ($redis->exists($dkey)) { $redis->del($dkey); $msg = 'ドメインキャッシュがフラッシュされました'; } else { $msg = 'いいえ
フラッシュするキャッシュ'; } // ログインしている場合は何もキャッシュしません } else if ($loggedin) { require('./wp-blog-header.php'); $msg = 'キャッシュされていません'; // ページをキャッシュします } else { // 出力バッファリングをオンにします ob_start(); require('./wp-blog-header.php');
// 出力バッファの内容を取得 $html = ob_get_contents(); // 出力バッファをクリーンアップします ob_end_clean(); エコー$html; // ページが存在し、検索結果ではない場合にのみキャッシュに保存します。 if (!is_404() && !is_search()) { // 保存
HTML コンテンツを Redis キャッシュに保存 $redis->hset($dkey, $ukey, $html); $msg = 'キャッシュが設定されています'; } } $end = microtime(); // 終了実行時刻を取得 // デバッグが有効な場合にメッセージを表示 if ($debug) { echo $msg.': '; echo t_exec($start, $end);
} if ($cached && $display_powered_by_redis) { // You should move this CSS to your CSS file and change the: float:right;margin:20px 0;
echo "";
echo "
".t_exec($start, $end)." sec
2. を直接クリックすることもできます。バックアップ ダウンロード :index-with-redis.php のダウンロード アドレス。 Github プロジェクト: https://gist.github.com/JimWestergren/3053250#file-index-with-redis-php
3. Cloudflare を使用している場合、ページ上で表示したい場合は cf = 1 を設定してください。スクリプトの実行時間とキャッシュの読み込み時間については、$debug = 1 を設定してください。display_powered_by_redis = 1 は、powered_by 情報を表示することを意味します。
4. nginx を使用している場合は、index-with-redis.php を別の名前に変更し、index-with-redis.php を WordPress のルート ディレクトリにアップロードします。
5. Apache を使用している場合は、.htaccess にあるindex.php をindex-with-redis.php に置き換える必要があります。
6. すべての操作が完了したら、WordPress ページを更新して Redis キャッシュ効果を表示できます。
7. 実際に使用すると、上記のコードにより WordPress のホームページとカテゴリが時間内にキャッシュされないことがわかります。これは http://www.88shenbogame.com/lightning-fast-wordpress からの最適化されたバージョンです。 -with-nginx-redis/ 。
8. 主な機能は次のとおりです: ログイン時にページはキャッシュされません。ログイン時に URL の後に ?c=y を追加すると、Web サイト全体が削除されます。キャッシュ。任意の URL の後に追加します。?c=y はこの URL キャッシュをクリアし、allow_fopen が無効になっていても正常に実行でき、コメントを残すときにページ キャッシュを削除します。
9、index-with-redis.php优化版のソースコード:
hexists($dkey, $ukey) && !$loggedin && !$submit) { echo $redis->hget($dkey, $ukey); if (!$debug) exit(0); $msg = 'これはキャッシュです'; // コメントが送信された場合、またはページ キャッシュのクリア リクエストが行われた場合は削除します
ページのキャッシュ } else if ($submit || substr($_SERVER['REQUEST_URI'], -4) == '?r=y') { require('./wp-blog-header.php'); $redis->hdel($dkey, $ukey); $msg = 'ページのキャッシュが削除されました'; // キャッシュ全体を削除します。ログインしている場合にのみ機能します。 } else if ($loggedin
&& substr($_SERVER['REQUEST_URI'], -4) == '?c=y') { require('./wp-blog-header.php'); if ($redis->exists($dkey)) { $redis->del($dkey); $msg = 'ドメインキャッシュがフラッシュされました'; } else { $msg = 'フラッシュするキャッシュがありません'; } // ログに記録されている場合
in 何もキャッシュしません } else if ($loggedin) { require('./wp-blog-header.php'); $msg = 'キャッシュされていません'; // ページをキャッシュします } else { // 出力バッファリングをオンにする ob_start(); require('./wp-blog-header.php'); // 出力バッファの内容を取得します
$html = ob_get_contents(); // 出力バッファをクリーンアップします ob_end_clean(); エコー$html; // HTML コンテンツを Redis キャッシュに保存 $redis->hset($dkey, $ukey, $html); $msg = 'キャッシュが設定されています'; $end = microtime(); // 終了実行時刻を取得 // 表示
デバッグが有効な場合のメッセージ if ($debug) { echo $msg.': '; echo t_exec($start, $end); } // 時刻差分関数 t_exec($start, $end) { $t = (getmicrotime($end) - getmicrotime($start)); ラウンド($t,5)を返します; } // 時刻を取得する関数 getmicrotime($t)
{ list($usec, $sec) =explode(" ",$t); return ((float)$usec + (float)$sec); } ?>
以上、Redis フロントエンドのインストールに保存されている PHP スクリプトを紹介しました。これにはさまざまな内容が含まれており、PHP 教則に関心のある友人の助けになることを望みます。