Caching for Cash: Caching

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Caching for Cash: Caching - Presentation Transcript

    1. CACHING FOR CASH - CACHING Scott MacVicar php|works 2008
    2. WHY CACHE? Reduce memory usage Reduce processing time Reduce network traffic Reduce disk access
    3. CACHING OPTIONS Flat file RAM disk Database Memcache APC Script level
    4. WHAT TO CACHE? External resources Large result sets Static data Sessions
    5. FLAT FILE CACHE Write data out to a local file Config files from Database or XML Remote resources store locally Output buffering to local file
    6. CACHING FILES PEAR::Cache_Lite Zend_Cache in Zend Framework var_export in PHP
    7. RAM DISK Mount some memory as disk space Used when IO actions can’t be avoided Non resizable on the fly
    8. LIGHTTPD + PHP Lua is a scripting language in lighttpd Use PHP to write out file to disk Have Lua look at the modified time of the file, if within the limit serve else execute PHP
    9. MEMCACHE Origins within Livejournal Used by Facebook, Youtube, Wikipedia and digg Caching daemon, no persistence Stores key / value pairs
    10. FACEBOOK EXAMPLE 200 dedicated memcache servers Each 16GB quad-core amd64 3TB memcache data
    11. MEMCACHE Slab Allocator Libevent based (non-blocking) Simple Protocol Server is just a hash table No authentication or self awareness
    12. MEMCACHE CLIENT Clients provide key and value Responsible for serialising any value Compress data
    13. SERVER PROTOCOL set/replace/add get append/prepend increment/decrement compare and swap
    14. HASHING Key is hashed into a value Modulous then applied which is the number of the servers Server is then picked and stored If one server drops out you only lose a fraction of the keys
    15. MEMCACHE LIMITS Key Size is 250 bytes Data Size is 1 megabyte 32bit/64bit memory limit No Replication across cluster
    16. MEMCACHE CLEANING UP Uses Least Recently Used Algorithm Looks for the oldest item and removes TTL also applies to key / value pairs
    17. SIMPLE USAGE Fetch from memcache If there return Else calculate, store in cache and return
    18. WHERE TO RUN? Any server works No need for matching size Low CPU usage
    19. MEMCACHE + PHP PECL extension using custom connection pecl install memcache Provides MemcachePool and Memcache INI settings to change hash strategy, function and protocol.
    20. MEMCACHE SAMPLE
    21. MEMCACHE ACTIONS Add - only if the key doesn’t exist Set - will add or update key Replace - only if the key already exists
    22. MEMCACHE TASK Open Terminal in VMWare Image and run sudo service memcached start Try using memcache to set, get and add values Try setting a value using the Time To Live parameter Ask questions :-)
    23. MEMCACHEDB Persistent key/value storage system BDB used for persitence Compatible with Memcache protocol
    24. MEMCACHEDB CAVEATS No expiration Isn’t a replacement for memcache
    25. APC Provides OPCode caching in PHP Shared memory for storage APC is only on the local server No network overhead from TCP/IP
    26. APC Input Tokenizer Parser APC Compiler Store Opcodes Executor
    27. APC SAMPLE
    28. CACHE LAYERING Disk / APC Memcache Database Fetch from APC locally Fetch from Memcache, add to APC Finally fetch from the original source and store back in Memcache
    29. APC USE CASES Should always use it to cache opcode of files Small but frequently accessed things You only have one server
    30. APC TASK Try storing classes or arrays in APC Use the Time To Live APC supports an array for keys in apc_get, fetch multiple values
    31. SQLITE Local node storage of filesystem Cache result sets from remote database In memory database
    32. DATABASE QUERY CACHING Rely on MySQL to do the query caching Doesn’t quite work though :-( Invalidation of cache happens easily
    33. ALTERNATIVE DATABASE CACHING Store the result set from the database using another caching software Hash query as a key value Extend your DB layer to add this transparently?
    34. CACHING TIPS Pre-heat the cache Use multiple levels of cache Cache even dynamic data for short times serialize() is slow
    35. QUESTIONS?

    + Scott MacVicarScott MacVicar, 6 months ago

    custom

    749 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 749
      • 749 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 11
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Tags