ホームページ >バックエンド開発 >PHPチュートリアル >PHP キャッシュ使用時の落とし穴_PHP チュートリアル

PHP キャッシュ使用時の落とし穴_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:53:02842ブラウズ

まずコードを見てみましょう:
[php]
/**
* 設定情報を取得します
​*/
パブリック関数 getCoinSetting() {
$cache = Common::getTair(); $ckey = Common::hashKey("Hello"); $ret = $cache->get($ckey); if ($ret) は json_decode($ret, true) を返します
$taomanyiApiService = $this->getTmiApiService(); $result = $taomanyiApiService->getCoinSetting(); $cache->set($ckey, json_encode($result), 3600); $result を返します。 }

これは、Tair メモリ キャッシュを使用する例です。このコードでは、キャッシュが設定されており、キャッシュ時間は 3600 秒です。 APIからデータを取得するのですが、このように書くとどのような問題が発生するのでしょうか?次の場合:
[php]
$result = $taomanyiApiService->getCoinSetting();
$resultデータはHTTPからリクエストされているため、$resultで取得したデータが空であることもよくあります。この場合、HTTP リクエストが失敗すると、インターフェース データをリクエストできなくなります。次のステップはキャッシュを設定することです
。 [php]
$cache->set($ckey, json_encode($result), 3600);

インターフェイスの HTTP リクエストの失敗により、誤って空のデータがキャッシュされ、キャッシュ時間が 3600 秒であることがわかります。これはページに表示されます。たとえば、分類にデータのギャップがあり、ビジネス プロセス全体に影響します

次の最適化を行います:
[php]
if ($result) $cache->set($ckey, json_encode($result), 3600);

作者: initphp



http://www.bkjia.com/PHPjc/478077.html


www.bkjia.com

tru​​e


http://www.bkjia.com/PHPjc/478077.html

技術記事

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