<?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>Wed, 22 May 2013 20:03:24 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[James Morris: A WebSockets, Ratchet, Silex and Redis PubSub Implementation]]></title>
      <guid>http://www.phpdeveloper.org/news/19080</guid>
      <link>http://www.phpdeveloper.org/news/19080</link>
      <description><![CDATA[<p>
<i>James Morris</i> has an <a href="http://blog.jmoz.co.uk/websockets-ratchet-react-redis">interesting new post</a> to his site about the creation of a real-time web service that could be used for iOS applications via Websockets. He chose <a href="http://socketo.me/">Ratchet</a> for the handling (a PHP-based websocket tool) combined with Redis and Silex.
</p>
<blockquote>
I was approached by a betting/gambling development company who potentially needed a middleware building that would pull from an existing gambling web service and basically transmit to connected iPhone clients the changes from the web service. At first, the obvious answer might be to create another REST web service that the iPhone clients could just ping for changes. However, one of the devs explained that this wouldn't be fast enough, or scale - they'd need changes to be transmitted as soon as possible, as the app would be a real-time betting app and there'd be thousands of connections to the server.
</blockquote>
<p>
His solution involved hooking together Ratchet, Redis, Silex and Predis-async to create <a href="http://silex-test.jmoz.co.uk/pubsub">this sample tool</a> for handling the websocket requests. it uses the "pubsub" mechanism of Redis to push the updates out to listening clients.
</p>]]></description>
      <pubDate>Wed, 23 Jan 2013 12:09:33 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: An Introduction to Redis in PHP using Predis]]></title>
      <guid>http://www.phpdeveloper.org/news/17901</guid>
      <link>http://www.phpdeveloper.org/news/17901</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial by <i>Daniel Gafitescu</i> showing you how to <a href="http://phpmaster.com/an-introduction-to-redis-in-php-using-predis/">work with Redis</a> (a key-value store) via PHP with the help of the <a href="https://github.com/nrk/predis">Predis</a> library.
</p>
<blockquote>
There is a lot of argument whether Redis or Memcache is better, though <a href="http://antirez.com/post/update-on-memcached-redis-benchmark.html">as the benchmarks show</a> they perform pretty much on par with each other for basic operations. Redis has more features than Memcache has, such as in-memory and disk persistence, atomic commands and transactions, and not logging every change to disk but rather server-side data structures instead. In this article we'll take a look at some of the basic but powerful commands that Redis has to offer using the Predis library.
</blockquote>
<p>
He helps you get a local redis server up and running and includes a <a href="https://github.com/nrk/predis">link to the repository</a> for the latest version of the Predis library. Some sample code is provided showing how to connect to the server, push data into a key/value combination, get the value back out, increment it and check to see if it exists. He also talks about some of the available data types Redis provides and a few other more complex operations you can perform on things other than strings.
</p>]]></description>
      <pubDate>Thu, 03 May 2012 09:35:21 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Voices of the ElePHPant Podcast: Interview with Justin Carmony, Utah Open Source Community]]></title>
      <guid>http://www.phpdeveloper.org/news/17799</guid>
      <link>http://www.phpdeveloper.org/news/17799</link>
      <description><![CDATA[<p>
The Voices of the ElePHPant podcast has posted their latest episode - an interview with another member of the PHP community, <a href="http://www.justincarmony.com/blog/">Justin Carmony</a>, a member of the Utah Open Source Foundation/Conference.
</p>
<p>
<i>Cal</i>'s "three questions" for <i>Justin</i> are around his work with Redis and the Utah open source community and conference:
</p>
<ul>
<li>For those that don't know, can you tell us what Redis is and why did you choose it over other options?
<li>Can you tell us why "middle-scale" sites are different and what challenges do they uniquely face?
<li>As a developer how has getting involved in organizing helped you both personally and professionally?
</ul>
<p>
You can listen to this latest episode through the <a href="http://voicesoftheelephpant.com/2012/04/10/interview-with-justin-carmony/">in-page player</a>, by <a href="http://voices.of.the.elephpant.s3.amazonaws.com/vote_047.mp3">downloading the mp3</a> or by <a href="http://voicesoftheelephpant.com/feed/podcast/">subscribing to their feed</a>.
</p>]]></description>
      <pubDate>Tue, 10 Apr 2012 13:19:39 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Carmony's Blog: PHP Workers with Redis & Solo]]></title>
      <guid>http://www.phpdeveloper.org/news/17378</guid>
      <link>http://www.phpdeveloper.org/news/17378</link>
      <description><![CDATA[<p>
In <a href="http://www.justincarmony.com/blog/2012/01/10/php-workers-with-redis-solo/">this latest post</a> to his blog <i>Justin Carmony</i> shares some of his experience using Redis and <a href="http://timkay.com/solo/solo">Solo</a> to asynchronously run queries and return data without the user having to wait. 
</p>
<blockquote>
Sometimes there are situations when you want to parallel process things. Other times you might have a list of tasks to accomplish, and you don't want to make the user wait after pressing a button. This is where "Workers" can come in. They are independent scripts that run along side of your application, performing tasks, or "jobs."
</blockquote>
<p>
Solo is a very basic Perl script that ensures only one process of a type is running at once. Using this and a PHP library called <a href="https://github.com/nrk/predis">predis</a>, he shows how to set up workers and add items to your processing queue. The workers themselves run on a cron job and connect to the queue server to see what they need to do. He also throws in some "bells and whistles" - extras that can enhance your worker system: queue monitoring, version numbering and killing workers based on a hash value.
</p>
<p>
His code examples are posted on <a href="https://github.com/JustinCarmony/PHP-Workers-with-Redis-Solo-Examples">his github account</a> and a screencast is <a href="http://www.justincarmony.com/blog/2012/01/10/php-workers-with-redis-solo/">included in the post</a> to show the system in action.
</p>]]></description>
      <pubDate>Wed, 11 Jan 2012 11:50:52 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Justin Carmony's Blog: MySQL, Redis, and a Billion Rows - A Love Story]]></title>
      <guid>http://www.phpdeveloper.org/news/16387</guid>
      <link>http://www.phpdeveloper.org/news/16387</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Justin Carmony</i> <a href="http://www.justincarmony.com/blog/2011/05/23/mysql-redis-and-a-billion-rows-a-love-story/">shares the story</a> of how he took a platform running with MySQL as the backend (<a href="http://www.datingdna.com/">Dating DNA</a>) and made the choice to move to <a href="http://redis.io/">Redis</a> for storing compatibility scores for every user in the system.
</p>
<blockquote>
We wanted not only for people to be able to visit a profile and see a score, which is easy to generate a score on demand. We wanted our users to be able to browse other profiles sorted by their score with them. This requires us to pre-generate and store these scores, and then later query them. [...] I believe we could have bent MySQL to our will and got it to work, but it would be at a high cost of server power, and that cost wouldn't scale well with our revenue stream.
</blockquote>
<p>
He talks about some of the other options they sorted through including NoSQL databases or building something completely in-house. In the end, though, they decided that <a href="http://redis.io/">Redis</a> was more of what they needed. He prefaces talking about their configuration with some of the limitations of the tool and then moves into their setup and statistics on its use (complete with pretty graphs). He points to <a href="https://github.com/nrk/predis">predis</a> as their Redis client of choice for PHP.
</p>]]></description>
      <pubDate>Thu, 26 May 2011 10:57:24 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jim Plush's Blog: Fix when compiling the Redis php extension on OSX - mach-o, but wrong architecture]]></title>
      <guid>http://www.phpdeveloper.org/news/15125</guid>
      <link>http://www.phpdeveloper.org/news/15125</link>
      <description><![CDATA[<p>
When trying to load in the Redis module for his PHP installation, <i>Jim Plush</i> was <a href="http://www.litfuel.net/plush/?postid=198">getting an error</a>:
</p>
<blockquote>
PHP Warning: PHP Startup: Unable to load dynamic library '/[...]/redis.so' - dlopen(/[...]/redis.so, 9): no suitable image found. Did find: /[...]/redis.so: mach-o, but wrong architecture in Unknown on line 0
</blockquote>
<p>
He fixed the issue with the help of a bash script (source included) that sets up the right environment to build PHP on the OSX platform. Then the normal make, phpize, etc process can be done on the PECL extension and have it compile correctly.
</p>]]></description>
      <pubDate>Tue, 14 Sep 2010 11:02:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Raphael Stolt's Blog: Installing the PHP redis extension on Mac OS X]]></title>
      <guid>http://www.phpdeveloper.org/news/14519</guid>
      <link>http://www.phpdeveloper.org/news/14519</link>
      <description><![CDATA[<p>
In his latest blog post <i>Raphael Stolt</i> has a new guide to getting <a href="http://raphaelstolt.blogspot.com/2010/05/installing-php-redis-extension-on-mac.html">the Redis extension installed</a> on your Mac OS X PHP setup. Redis is a key-value based storage tool.
</p>
<blockquote>
Two out of [the list of libraries] caught my particular attention: <a href="http://rediska.geometria-lab.net/">Rediska</a> due to it's impressive <a href="http://framework.zend.com/">Zend Framework</a> integration and <a href="http://github.com/owlient/phpredis">phpredis</a> as it's a native PHP extension written in C and therefore supposed to be blazingly faster than vanilla PHP client libraries. The following blog post will show how to install and configure the aforementioned, native PHP extension on a Mac OS X system.
</blockquote>
<p>
You'll need to have the redis server already installed (via MacPorts or some other method) but with that and the necessary libraries in place installing the extension is a simple "git clone" away. He even includes the location of a gist (code snippet) to help you test it out.
</p>]]></description>
      <pubDate>Mon, 17 May 2010 08:55:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: Add NoSQL Data Storage to Your PHP Development with Redis ]]></title>
      <guid>http://www.phpdeveloper.org/news/14432</guid>
      <link>http://www.phpdeveloper.org/news/14432</link>
      <description><![CDATA[<p>
On PHPBuilder.com today there's a new tutorial that helps you integrate a tool from the the NoSQL movement - Redis - into your application. <a href="http://www.phpbuilder.com/columns/keith_vance042810.php3">This tutorial</a> shows you how to add this powerful, fast database as a general content store for your application.
</p>
<blockquote>
NoSQL is all the rage for Web developers who are tired of building complex SQL. Redis, a NoSQL database server much like Cassandra or MongoDB, provides a powerful and speedy alternative to relational database servers for PHP developers. Redis is similar to Memcached in terms of speed, but the data isn't volatile. That means that when your server reboots, your Redis data will still be there. You can back it up too.
</blockquote>
<p>
Installing the server for Redis is easy (if you use a package management system) and getting up and running with PHP is as easy as using one of the PHP connection libraries out there like <a href="http://rediska.geometria-lab.net/">Rediska</a>. In his example he shows one of the most basic operations - storing string values, appending to them and pulling them back out based on their unique key.
</p>]]></description>
      <pubDate>Thu, 29 Apr 2010 08:45:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Kevin van Zonneveld's Blog: Redis PHP Introduction]]></title>
      <guid>http://www.phpdeveloper.org/news/14251</guid>
      <link>http://www.phpdeveloper.org/news/14251</link>
      <description><![CDATA[<p>
<i>Kevin van Zonneveld</i> has written up a new post for his blog today looking at <a href="http://kevin.vanzonneveld.net/techblog/article/redis_in_php/">using Redis</a> in your application for caching information (similar to memcache).
</p>
<blockquote>
Don't know <a href="http://code.google.com/p/redis/">Redis</a>? Think Memcache, with support for for lists, and disk-based storage. You can use Redis as a database, queue, cache server or all of those combined. [...] Redis keeps the entire dataset in memory, so it's still crazy fast: 110000 SETs/second, 81000 GETs/second. Good enough for to you? [...] Yes, you can store (serialized) arrays in Memcache. But every time you change 1 element, you'd have to invalidate & overwrite the entire array.
</blockquote>
<p>
He talks about installing the redis server (a simple task if you use the package management tool for your linux release) and some simple code to push data into the caching server for keys, lists, sets and how to pull the information back out sorted.
</p>]]></description>
      <pubDate>Fri, 26 Mar 2010 07:46:04 -0500</pubDate>
    </item>
  </channel>
</rss>
