<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Fri, 24 May 2013 08:59:40 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[James Fuller: Simply scale with Nginx, Memcached, PHP-FPM and APC]]></title>
      <guid>http://www.phpdeveloper.org/news/19129</guid>
      <link>http://www.phpdeveloper.org/news/19129</link>
      <description><![CDATA[<p>
<i>James Fuller</i> has <a href="http://www.jblotus.com/2013/02/01/simply-scale-with-nginx-memcached-php-fpm-and-apc/">posted a guide to scaling</a> your web application using the nginx web server, memcached, PHP-FPM and APC caching.
<p>
<blockquote>
We sell an educational product that serves a predictable 15,000 requests per minute for 10+ hours/day, every day. Instead of Apache, we use nginx with <a href="http://www.php.net/manual/en/install.fpm.php">PHP-FPM</a> to handle this traffic. This is becoming a very popular setup for many companies with non-trivial traffic, but I have also found success with it in my small <a href="http://www.linode.com/?r=8ab874aa33b39b129030c8e53132a9d5ce87a06f">256MB Ram VPS</a>. For various reasons, nginx does a better job with memory and concurrent connection handling than Apache. In this post, I want to talk about some of the reasons you might want to go with this setup.
</blockquote>
<p>
He talks about some of the efficiency gains that memcache and nginx can give you pretty easily and some of the common uses for nginx, including using it as a reverse proxy. He talks some about Apache's typical request handling and shows the difference between that and how nginx does its "never block, finish fast" handling. He fits in the other pieces - PHP-FPM, memcached and APC - showing how each of them offers their own types of performance gains for different areas of the application.
</p>]]></description>
      <pubDate>Mon, 04 Feb 2013 10:46:01 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Mike Purcell's Blog: CentOS - PHP - Install Memcached (with a d) Stack]]></title>
      <guid>http://www.phpdeveloper.org/news/18116</guid>
      <link>http://www.phpdeveloper.org/news/18116</link>
      <description><![CDATA[<p>
In <a href="http://melikedev.com/2012/06/19/centos-php-install-memcached-with-a-d-stack/">this new post</a> to his blog <i>Mike Purcell</i> gives you the full instructions to getting a CentoOS 6 system up and running with Memcached and PHP.
</p>
<blockquote>
Recently I started retro-fitting the <a href="http://melikedrinks.com/">MeLikeDrinks.com</a> drink website to cache frequently used data to improve performance, as such I wrote a light, custom cache API which sits on top of PHP's Memcached API. [...] If you opt to use PHP Memcache, and because this article assumes you are using CentOS,  you can simply have YUM install the entire stack for your via `yum install php-memcache`.
</blockquote>
<p>
He describes some of the differences between the two memcache APIs available to PHP developers (memcache and memcached) and includes the instructions to get both versions installed. "Memecache" is as easy as installing the package, while "Memcached" takes a bit more work - installing dependencies, configuring and compiling a few things specific to your system.
</p>]]></description>
      <pubDate>Wed, 20 Jun 2012 09:13:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Artur Ejsmont's Blog: Publishing queue messages from PHP using different backends]]></title>
      <guid>http://www.phpdeveloper.org/news/17729</guid>
      <link>http://www.phpdeveloper.org/news/17729</link>
      <description><![CDATA[<p>
<i>Artur Ejsmont</i> has <a href="http://artur.ejsmont.org/blog/content/publishing-messages-from-php-to-different-message-queue-backends">a new post</a> sharing some benchmarks he put together about the "messages per second" and "time to execute" when using PHP to pull from various messaging backends.
</p>
<blockquote>
I have looked at the state of different messaging backends recently and i ran a little benchmark to see what is the rough comparison of message publishing throughput. Results that i got are quite surprising. What i wanted to achieve is some sort of reassurance before choosing a messaging bus for my PHP project. 
</blockquote>
<p>
Running both the PHP and the messaging test scripts on the same server, he pulled from a few different backend systems - RabbitMQ, MySQL, MongoDb, Memcached and ActiveMQ. The results were interesting, showing an interesting result in the time it took to execute versus the number of messages per second pushed in. 
</p>]]></description>
      <pubDate>Mon, 26 Mar 2012 11:31:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Turbocharge your Website with Memcached]]></title>
      <guid>http://www.phpdeveloper.org/news/17509</guid>
      <link>http://www.phpdeveloper.org/news/17509</link>
      <description><![CDATA[<p>
On the NetTuts.com site there's <a href="http://net.tutsplus.com/tutorials/php/faster-php-mysql-websites-in-minutes/">a new tutorial</a> showing you how to introduce the Memcached tool to your application - a quick and easy way to cache data and optimize performance.
</p>
<blockquote>
Your latest PHP/MySQL website is finally online. And it's awesome. But it's not as fast as you want it to be, because of the many SQL queries running every time a page is generated. And above that, you have the feeling it will not scale well under heavy loads. And you are most likely right. In this tutorial, we will see how you can greatly improve your website's responsiveness [...] by implementing a cache layer between your code and your database. The good news is it is fairly easy, and can be done in a few minutes!
</blockquote>
<p>
They help you get the memcached server installed (a one-liner in most linux distributions) and how to install the memcached extension using <a href="http://pecl.php.net">PECL</a>. Code is included showing you how to connect to the server, store data into the cache based on a generated key and how to pull the same data back out.
</p>]]></description>
      <pubDate>Tue, 07 Feb 2012 10:06:40 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Maarten Balliauw's Blog: Running Memcached on Windows Azure for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17033</guid>
      <link>http://www.phpdeveloper.org/news/17033</link>
      <description><![CDATA[<p>
<i>Maarten Balliauw</i> has a new post to his blog with a guide to <a href="http://blog.maartenballiauw.be/post/2011/10/21/Running-Memcached-on-Windows-Azure-for-PHP.aspx">running mamcached on Windows Azure for PHP</a>, a tool targeted towards PHP on Windows users to provide them with the ability to cache outside of their application.
</p>
<blockquote>
While Windows Azure offers a distributed caching layer under the form of the <a href="http://www.microsoft.com/windowsazure/features/caching/">Windows Azure Caching</a>, that components currently lacks support for non-.NET technologies. I've heard there's work being done there, but that's not very interesting if you are building your app today. This blog post will show you how to modify a Windows Azure deployment to run and use <a href="http://memcached.org/">Memcached</a> in the easiest possible manner. Note: this post focuses on PHP but can also be used to setup Memcached on Windows Azure for NodeJS, Java, Ruby, Python...
</blockquote>
<p>
He provides a <a href="http://blog.maartenballiauw.be/file.axd?file=2011%2f10%2fMemcachedScaffolder.phar">phar-based scaffolding</a> you can use to set up the instance and describes two ways of accomplishing it - the "short way" of relying on the scaffolding or the "long way" describing what the scaffolder does behind the scenes (complete with code). For this, you can also <a href="http://blog.maartenballiauw.be/file.axd?file=2011%2f10%2fMemcachedScaffolderSource.zip">download the source</a> and look through it.
</p>]]></description>
      <pubDate>Mon, 24 Oct 2011 21:52:11 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Build Blazing Fast PHP Websites with Memcached Distributed Caching]]></title>
      <guid>http://www.phpdeveloper.org/news/16653</guid>
      <link>http://www.phpdeveloper.org/news/16653</link>
      <description><![CDATA[<p>
On PHPBuilder.com today <i>Jason Gilmore</i> has written up <a href="http://www.phpbuilder.com/columns/php-memcached/Jason_Gilmore07282011.php3">a new tutorial</a> about using memcached distributed caching for better performance in your web applications.
</p>
<blockquote>
You probably know one of the easiest ways to improve performance is by caching all or parts of a page. But what might not be so obvious is exactly how this is accomplished. As it happens, a great solution called Memcached makes it trivial to incorporate caching into your website with great effect. In fact, relied upon by some of the largest websites in the world, among them Facebook, Twitter, Zynga, and YouTube, Memcached has essentially become the de facto website caching solution!
</blockquote>
<p>
He walks you through installing the memcache extension for PHP (from <a href="http://pecl.php.net">PECL</a>) and includes a bit of sample code that caches some fetched MySQL results to to the memcache server. With the extension installed you're just a few simple function calls away from better performance.
</p>]]></description>
      <pubDate>Fri, 29 Jul 2011 11:07:53 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Andrew Johnstone's Blog: Memcached multigets - ubuntu vs debian]]></title>
      <guid>http://www.phpdeveloper.org/news/16467</guid>
      <link>http://www.phpdeveloper.org/news/16467</link>
      <description><![CDATA[<p>
<i>Andrew Johnstone</i> came across an interesting problem when he tried to use memcached multigets with a large number of keys - it was <a href="http://ajohnstone.com/achives/memcached-multigets-ubuntu-vs-debian/">throwing failures</a>, but only when he tried it on Ubuntu.
</p>
<blockquote>
I Spent a little while yesterday investigating why memcached causes problems with multigets returning results and ended up comparing debian vs ubuntu. [...] A larger number of keys than 200 causes memcached to fail to return valid responses, additionally the key length greatly varies the number items you can pull back within a single multiget on Ubuntu, Debian implementation of memcached is able to handle all requests regardless of key length size.
</blockquote>
<p>
He includes the code for his brief test and the output of the test runs on both Ubuntu and Debian systems. They clearly show the failures on the Ubunut side, with it throwing errors about "memcached_oi_read" and a zero length value returned to recv().
</p>]]></description>
      <pubDate>Tue, 14 Jun 2011 12:07:29 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Zend Developer Zone: ZendCon Sessions Episode 040: Memcached: the better Memcache interface]]></title>
      <guid>http://www.phpdeveloper.org/news/15987</guid>
      <link>http://www.phpdeveloper.org/news/15987</link>
      <description><![CDATA[<p>
On the Zend Developer Zone, <i>Kevin</i> has posted the latest episode of their ZendCon Sessions podcast series - <i>Ilia Alshanetsky</i>'s <a href="http://devzone.zend.com/article/13104-ZendCon-Sessions-Episode-040-Memcached-the-better-Memcache-interface">talk about memcached</a>.
</p>
<blockquote>
Welcome to the ZendCon 2010 edition of the ZendCon Sessions. The ZendCon Sessions are live recordings of sessions that have been given at previous Zend Conferences. Combined with the slides, they can be the next best thing to having attended the conference itself. [...] This episode of The ZendCon Sessions was recorded live at <A href="http://zendcon.com/">ZendCon 2010</a> in Santa Clara, CA and features Ilia Alshanetsky giving his talk: "Memcached, the Better Memcache Interface"
</blockquote>
<p>
You can listen to this latest episode in a few different ways - either through the <a href="http://devzone.zend.com/article/13104-ZendCon-Sessions-Episode-040-Memcached-the-better-Memcache-interface">in-page player</a>, by <a href="http://devzone.zend.com/content/audio/zendcon_sessions/zendcon_sessions_podcast_040.mp3">downloading the mp3</a> or by <a href="http://feeds.feedburner.com/zendcon_sessions?format=xml">subscribing to their feed</a>. There's also <a href="http://ilia.ws/files/ZendCon_Memcached_2010.pdf">slides</a> if you'd like to follow along.
</p>]]></description>
      <pubDate>Wed, 02 Mar 2011 12:08:49 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Elijaa.org: Using cas() command from PECL Memcached]]></title>
      <guid>http://www.phpdeveloper.org/news/15236</guid>
      <link>http://www.phpdeveloper.org/news/15236</link>
      <description><![CDATA[<p>
On Elijaa.org there's an <a href="http://www.elijaa.org/blog/index.php?post/2010/05/05/cas-command-pecl-memcached">interesting post</a> (from back in May 2010) about using the "cas()" command in the memcached PECL extension to update the cached value of an object while preventing collisions with other scripts that might be updating the same value.
</p>
<blockquote>
A series of commands is not atomic. If you issue a 'get' against an item, operate on the data, then wish to 'set' it back into memcached, you are not guaranteed to be the only process working on that value. In parallel, you could end up overwriting a value set by something else. [...] But PECL Memcached come with a useful function : cas().
</blockquote>
<p>
The "cas()" function uses a checksum pulled out when the data is uplled using "get()". This token along with the updated data is passed into the "cas()" method that does the additional checking for you. A code snippet is included to show you its use.
</p>]]></description>
      <pubDate>Wed, 06 Oct 2010 09:16:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Developer.com: Getting Started with Memcached Distributed Memory Caching]]></title>
      <guid>http://www.phpdeveloper.org/news/15064</guid>
      <link>http://www.phpdeveloper.org/news/15064</link>
      <description><![CDATA[<p>
On Developer.com today there's <a href="http://www.developer.com/open/article.php/3901666/article.htm">a new article</a> talking about memcache and how you can implement it in your application to provide a performance boost for applications in a distributed environment.
</p>
<blockquote>
As distributed system is part of the Memcached definition, you can install Memcached on various servers to make a larger caching server. In this way, Memcached helps reduce database loads to a minimum, resulting in faster and more responsive Web applications
</blockquote>
<p>
They take some time to explain what memcache is - a simple to use caching system that reduces the dependency on other data sources - and how to get it installed (via the package manager of your choice). They suggest times on when and when not to use it as well as some of the security implications you'll need to worry about when implementing it. There's also a bit of sample code to help you get started in your application. You'll need the <a href="http://www.php.net/manual/en/memcache.examples-overview.php">memcached extension</a> to make it all work, though.
</p>]]></description>
      <pubDate>Thu, 02 Sep 2010 09:40:02 -0500</pubDate>
    </item>
  </channel>
</rss>
