From 5ba8978d46ca0d08f7dec4a02705114ebf9a30ac Mon Sep 17 00:00:00 2001 From: Steven Benner Date: Thu, 12 Jul 2012 18:25:28 -0700 Subject: [PATCH] Expanded on object caching. --- _posts/10-03-01-Object-Caching.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/_posts/10-03-01-Object-Caching.md b/_posts/10-03-01-Object-Caching.md index c366dc0..fd8fff9 100644 --- a/_posts/10-03-01-Object-Caching.md +++ b/_posts/10-03-01-Object-Caching.md @@ -4,17 +4,21 @@ isChild: true ## Object Caching -There are times when it is advantageous to cache individual objects in your code, such as with data that is expensive to -get or database calls where the result is unlikely to change. You can use object caching software to hold pieces of data -in memory for extremely fast access later on. If you save these items in a data store after you get them then access the -data for following requests from cache you will see significant performance increases and reduced load on your database -servers. +There are times when it can be advantageous to cache individual objects in your code, such as with data that is +expensive to get or database calls where the result is unlikely to change. You can use object caching software to hold +these pieces of data in memory for extremely fast access later on. If you save these items to a data store after you +retrieve them, then pull them directly from the cache for following requests you can gain a significant improvement in +performance as well as reduce load on your database servers. -The most common memory object caching systems are APC and memcached. APC is a great choice for caching, it comes with -PHP and is very easy to setup and to use, but it is tied to the server it is installed on. Memcached on the other hand -is installed as a separate service and can be accessed across the network, meaning that you can store values in a -hyper-fast data store in a central location and many different systems can pull from it. In a networked configuration -APC will outperform memcached in terms of access speed, but memcached will be able to scale up faster and further. +The most commonly used memory object caching systems are APC and memcached. APC is a great choice for object caching as +well as opcode caching *(see above)*. APC comes bundled with PHP and it is very easy to setup and to use, the only +possible downside is that it is tied to the server it is installed on. Memcached on the other hand is installed as a +separate service and can be accessed across the network, meaning that you can store objects in a hyper-fast data store +in a central location and many different systems can pull from it. + +In a networked configuration APC will usally outperform memcached in terms of access speed, but memcached will be able +to scale up faster and further. If you do not expect to have multiple servers running your application, or do not need +the extra features that memcached offers then APC is probably your best choice for object caching. Example logic using APC: @@ -30,8 +34,8 @@ if (!$data) Learn more about popular object caching systems. -* [APC](http://php.net/manual/en/book.apc.php) +* [APC](http://php.net/manual/en/book.apc.php) (Can do opcode caching and object caching) * [APC Functions](http://php.net/manual/en/ref.apc.php) * [Memcached](http://memcached.org/) * [Redis](http://redis.io/) -* [WinCache](http://php.net/manual/en/book.wincache.php) (Windows Only) +* [WinCache](http://php.net/manual/en/book.wincache.php) (Windows Only, can do opcode caching and object caching)