Site icon Web Niraj

Memcached with PHP

On a recent project I worked on, the sheer amount of users using the application caused the web server to fail due to the load on the database. Memcache with PHP was just one of the methods I used to reduce the load on the database and away from constant disk read/writes.

On a Unix server, Memcache is easy to setup when using PHP and Apache/httpd. Once Memcache was running, a simple modification to the script accessing the database made a whole lot of difference. Here is a bit of sample code you can use to cache your own data:

 

// Init memcache
$memcache = new Memcache;
// Connect to memcache server
$memcache->connect( 'localhost', 11211 ) or die ( "Could not connect" );

// get data from cache
$cached_data = $memcache->get( 'my_data' );

if ( $cached_data ) {
    $data = $cached_data;
} else {
    // function to get data
    $data = getData();
    // store data in cache for 60 seconds
    $memcache->set( 'my_data', $data, false, 60 )
         or die ("Failed to save data at the server")
}

// do something with $data

 

Unfortunately, for this particular project, memcache wasn’t enough to reduce the load and the server crashed several times during one particular period of high traffic. Needless to say, the second time around we made sure we had enough server resources to cope with a massive load of traffic.

Exit mobile version