ホームページ  >  記事  >  バックエンド開発  >  Redis フロントエンド キャッシュをインストールするための PHP スクリプト

Redis フロントエンド キャッシュをインストールするための PHP スクリプト

WBOY
WBOYオリジナル
2016-07-28 08:27:571022ブラウズ

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) { $t = (getmicrotime($end) - getmicrotime($start)); // 時刻関数 getmicrotime($); t) { list($usec, $sec) =explode(" ",$t); return ((float)$usec + (float)$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 教則に関心のある友人の助けになることを望みます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。