Your SlideShare is downloading. ×
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Caching Data For Performance
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Caching Data For Performance

6,437

Published on

Information on how PHP developers can implement data caching to improve performance and scalability. Presented at the West Suburban Chicago PHP Meetup on February 7, 2008.

Information on how PHP developers can implement data caching to improve performance and scalability. Presented at the West Suburban Chicago PHP Meetup on February 7, 2008.

Published in: Technology
2 Comments
8 Likes
Statistics
Notes
  • Great material.. thanks for sharing!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Thanks. Very informative.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,437
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
251
Comments
2
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Caching Data For Performance Dave Ross West Suburban Chicago PHP Meetup February 7, 2008
  • 2. Caching It's faster to get information from somewhere close...
  • 3. Caching Than somewhere far away.
  • 4. It's all about scalability. (seriously)
  • 5. Where? Generally speaking... Local Database faster than Shared Database Local Disk faster than Database RAM faster than Disk
  • 6. What? Anything you don't want to fetch or compute every time your code runs. Anything that isn't going to change very often.
  • 7. Everybody's Doing It!
    • WP-Cache (Wordpress)
    • Drupal has it built-in
    • memcached (LiveJournal, Slashdot, WikiPedia)
  • 8. Even PHP Itself Is Getting Cached
    • PHP opcode caches compile your scripts and run these pre-parsed versions instead.
    • Zend Optimizer
    • APC (Alternative PHP Cache)
    • Xcache
    • eAccelerator
    • ionCube
  • 9. A Few Things I Cached Recently
    • Access Control List
    • Page metadata
    • Entire CMS pages
  • 10. Caching On Disk Make a big array of the data you need. // At the start of your script $array = unserialize(file_get_contents($fileName)); // If the data isn't already there, put it there if(array_key_exists('key', $array)) { $value = $array['key']; } else { // Retrieve or compute $value $value = “Hello, World!”; $array['key'] = $value; } // At the end of your script file_put_contents($fileName, serialize($array));
  • 11. Of Course, the OS Caches Files Modern operating systems use all your free RAM as a disk cache. If you read the same file over & over, it's probably being read out of RAM the second time on. So, it's usually ok to read a small file over & over.
  • 12. memcached “ memcached is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.”
  • 13. memcached (It's a big array that doesn't go away when your PHP program ends.)
  • 14. memcached <?php $memcache = new Memcache; $memcache->connect('localhost', 11211) or die (&quot;Could not connect&quot;); $version = $memcache->getVersion(); echo &quot;Server's version: &quot;.$version.&quot;<br/> &quot;; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die (&quot;Failed to save data at the server&quot;); echo &quot;Store data in the cache (data will expire in 10 seconds)<br/> &quot;; $get_result = $memcache->get('key'); echo &quot;Data from the cache:<br/> &quot;; var_dump($get_result); ?>
  • 15. Caveats Be careful caching anything where security matters. Don't cache credit card info (PCI compliance) Keep cache up-to-date (when data changes)
  • 16. For More Information
    • Caching In General
    • http://en.wikipedia.org/wiki/Cache
    • PHP Accelerators/Opcode Caches
    • http://en.wikipedia.org/wiki/PHP_accelerator
    • http://www.zend.com/en/products/guard/optimizer
    • memcached
    • http://www.danga.com/memcached/

×