メモリ キャッシュを使用して WordPress 記事閲覧統計の効率を最適化する

藏色散人
リリース: 2019-09-24 10:05:30
転載
2778 人が閲覧しました

Memcached メモリ キャッシュは WordPress の多くの機能を最適化し、WordPress を高速化できます。次のコラム WordPress チュートリアル では、Memcached を使用して WordPress を徹底的に最適化する方法を紹介します。

メモリ キャッシュを使用して WordPress 記事閲覧統計の効率を最適化する

メモリ キャッシュを使用して、WordPress 記事閲覧統計の効率を最適化します。

WordPress のデフォルトのカスタム フィールド キャッシュ メソッド

一般記事閲覧統計プラグインは、カスタム フィールドを使用してデータを保存します。サーバーがオンになっている場合、Memcached メモリが使用されます。キャッシュ、カスタムフィールドのデータはどのようにキャッシュされますか? WordPress は、キャッシュ全体として $post_id をキャッシュキーとして使用し、「post_meta」をキャッシュグループとして使用します。

したがって、カスタム フィールドを更新することは、$post_id の下にあるすべてのカスタム フィールドのキャッシュをまとめて更新することと同じであり、記事が表示されるたびにカスタム フィールドのデータが 1 ずつ増加するため、毎回カスタム フィールドのキャッシュが更新されるため、ページごとにさらに 3 つの SQL クエリが発生します。

メモリ キャッシュを使用して記事閲覧統計の効率を最適化する

この問題を解決する方法はありますか?まず記事の閲覧統計をメモリにキャッシュし、毎回 10 件のビューを追加した後にデータベースに書き込むことで、WordPress 操作におけるカスタムフィールドの変更によって発生する SQL クエリの数を大幅に削減できます。

上記のコードを現在のテーマのfunctions.phpファイルにコピーします:

// 更新文章浏览数的时候,首先更新到内存中,然后每10次,才写到数据库中
add_filter('update_post_metadata', function($check, $post_id, $meta_key, $meta_value){
if($meta_key == 'views'){
if($meta_value % 10 != 0){
$check= true;
wp_cache_set($post_id, $meta_value, 'views');
}else{
wp_cache_delete($post_id, 'views');
}
}
return $check;
}, 1, 4);
// 获取文章浏览数的时候,首先从内存中获取,没有才从数据库中获取
add_filter('get_post_metadata', function($pre, $post_id, $meta_key){
if($meta_key == 'views'){
$views= wp_cache_get($post_id, 'views');
if($views !== false){
return [$views];
}
}
return $pre;
}, 1, 3);
ログイン後にコピー

小さな問題が発生する可能性もあります: Memcachedのキャッシュは永続的ではないため、誤ってメモリをキャッシュした場合クリアすると記事ビュー数の一部が失われますが、確実に10未満になります。

WPJAM Basic プラグインには Memcached が統合されています。WPJAM Basic をダウンロードした後、wpjam-basic/template/ ディレクトリにある object-cache.php ファイルを wp-content ディレクトリにコピーします。

以上がメモリ キャッシュを使用して WordPress 記事閲覧統計の効率を最適化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:wpjam.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート