忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/04/25 19:33 |
PHP1-79:APCキャッシュの具体的使用法

なんといってもAPIです。
他サイトにリクエストを投げるわけですからどうしても時間がかかってしまいます。
またリクエスト回数が増えると負荷もかかるので、多くのサイトでは上限回数が指定されているはずです。
そんなときこそAPCです。やってみましょう。
題材は適当にググって引っかかったサムネイル画像作成API
http://img.simpleapi.net/

まずは普通に実行

thumbnail.php

1
2
3
4
5
6
7
8
9
10
<?php
    
    //画像を拾ってくる
        $url='http://img.simpleapi.net/small/http://www.google.co.jp/';
        $ret=file_get_contents($url);
    
    //画像表示
        header('Content-Length: '.strlen($ret));
        header('Content-Type: image/jpeg');
        print($ret);

リクエストがあると毎回img.simpleapi.netまで画像を取りに行きます。
次にAPCを使ってみます。

thumbnail_apc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
    
    //APCからキャッシュロード
        $api_cache=apc_fetch('thumbnail_cache');
    
    //キャッシュロードに失敗したら
        if($api_cache===false){
            //画像を拾ってくる
                $url='http://img.simpleapi.net/small/http://www.google.co.jp/';
                $api_cache=file_get_contents($url);
            //APCにキャッシュを保存
                apc_store('thumbnail_cache',$api_cache,3600);
    }
    
    //画像表示
        header('Content-Length: '.strlen($api_cache));
        header('Content-Type: image/gif');
        print($api_cache);

APCにデータが無ければ拾ってきてそれを突っ込みますが、あればAPIにアクセスすること無しにキャッシュから画像を表示します。
というわけであっさり成功。

さて、ここらへん見てみるとどうもAPCにはさらに別の使い方があるようで、というかこっちが主題でapc_fetch()とかがおまけっぽくない?
http://neta.ywcafe.net/000952.html
http://www.maido3.com/server/option/php.html


ちなみにapc_fetchに第二引数を渡したらエラーになりました。
mixed apc_fetch ( string $key [, bool &$success ] )
Warning: apc_fetch() expects exactly 1 parameter, 2 given

はて??

 

PR


2009/06/01 15:57 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP1-80:OpenSSL | HOME | PHP1-78:APCキャッシュ>>
忍者ブログ[PR]