Procházet zdrojové kódy

Fixed and extended the README

Daniele Alessandri před 15 roky
rodič
revize
e48dfed99f
1 změnil soubory, kde provedl 33 přidání a 19 odebrání
  1. 33 19
      README.markdown

+ 33 - 19
README.markdown

@@ -24,15 +24,19 @@ to be implemented soon in Predis.
 ## Quick examples ##
 
 ### Connecting to a local instance of Redis ###
-
+
+You don't have to specify a tcp host and port when connecting to Redis instances 
+running on the localhost on the default port:
 
     $redis = new Predis\Client();
     $redis->set('library', 'predis');
     $value = $redis->get('library');
-
+
 
 ### Pipelining multiple commands to a remote instance of Redis ##
-
+
+Pipelining helps with performances when there is the need to issue many commands 
+to a server in one go:
 
     $redis   = new Predis\Client('10.0.0.1', 6379);
     $replies = $redis->pipeline(function($pipe) {
@@ -41,10 +45,14 @@ to be implemented soon in Predis.
         $pipe->incrby('counter', 30);
         $pipe->get('counter');
     });
-
+
 
 ### Pipelining multiple commands to multiple instances of Redis (sharding) ##
-
+
+Predis supports data sharding using consistent-hashing on keys on the client side. 
+Furthermore, a pipeline can be initialized on a cluster of redis instances in the 
+same exact way they are created on single connection. Sharding is still transparent 
+to the user:
 
     $redis = Predis\Client::createCluster(
         array('host' => '10.0.0.1', 'port' => 6379),
@@ -57,18 +65,24 @@ to be implemented soon in Predis.
             $pipe->get("key:$i");
         }
     });
-
+
 
 ### Definition and runtime registration of new commands on the client ###
-
 
-class BrandNewRedisCommand extends \Predis\InlineCommand {
-    public function getCommandId() { return 'NEWCMD'; }
-}
+Let's suppose Redis just added the support for a brand new feature associated 
+with a new command. If you want to start using the above mentioned new feature 
+right away without messing with Predis source code or waiting for it to find 
+its way into a stable Predis release, then you can start off by creating a new 
+class that matches the command type and its behaviour and then bind it to a 
+client instance at runtime. Actually, it is easier done than said:
 
-$redis = new Predis\Client();
-$redis->registerCommand('BrandNewRedisCommand', 'newcmd');
-$redis->newcmd();
+    class BrandNewRedisCommand extends \Predis\InlineCommand {
+        public function getCommandId() { return 'NEWCMD'; }
+    }
+
+    $redis = new Predis\Client();
+    $redis->registerCommand('BrandNewRedisCommand', 'newcmd');
+    $redis->newcmd();
 
 
 ## Development ##
@@ -97,14 +111,14 @@ variable set to E_ALL.
 ## Links ##
 
 ### Project ###
-[Source code](https://github.com/nrk/predis/)
-[Issue tracker](http://github.com/nrk/predis/issues)
+- [Source code](https://github.com/nrk/predis/)
+- [Issue tracker](http://github.com/nrk/predis/issues)
 
 ### Related ###
-[Redis](http://code.google.com/p/redis/)
-[PHP](http://php.net/)
-[PHPUnit](http://www.phpunit.de/)
-[Git](http://git-scm.com/)
+- [Redis](http://code.google.com/p/redis/)
+- [PHP](http://php.net/)
+- [PHPUnit](http://www.phpunit.de/)
+- [Git](http://git-scm.com/)
 
 ## Author ##