Skip to content
This repository
Browse code

Add example for master / slave replication.

  • Loading branch information...
commit 466c666547baf0039af25a64c725af1227fb68c4 1 parent 8d5c794
Daniele Alessandri authored

Showing 1 changed file with 52 additions and 0 deletions. Show diff stats Hide diff stats

  1. +52 0 examples/MasterSlaveReplication.php
52 examples/MasterSlaveReplication.php
... ... @@ -0,0 +1,52 @@
  1 +<?php
  2 +
  3 +/*
  4 + * This file is part of the Predis package.
  5 + *
  6 + * (c) Daniele Alessandri <suppakilla@gmail.com>
  7 + *
  8 + * For the full copyright and license information, please view the LICENSE
  9 + * file that was distributed with this source code.
  10 + */
  11 +
  12 +require 'SharedConfigurations.php';
  13 +
  14 +// Predis supports master / slave replication scenarios where write operations are
  15 +// performed on the master server and read operations are executed against one of
  16 +// the slaves. The behaviour of commands or EVAL scripts can be customized at will.
  17 +// As soon as a write operation is performed, all the subsequent requests (reads
  18 +// or writes) will be served by the master server.
  19 +//
  20 +// This example must be executed with the second Redis server acting as the slave
  21 +// of the first one using the SLAVEOF command.
  22 +//
  23 +
  24 +$parameters = array(
  25 + 'tcp://127.0.0.1:6379?database=15&alias=master',
  26 + 'tcp://127.0.0.1:6379?database=15&alias=slave',
  27 +);
  28 +
  29 +$options = array('replication' => true);
  30 +
  31 +$client = new Predis\Client($parameters, $options);
  32 +
  33 +// Read operation.
  34 +$exists = $client->exists('foo') ? 'yes' : 'no';
  35 +$current = $client->getConnection()->getCurrent()->getParameters();
  36 +echo "Does 'foo' exist on {$current->alias}? $exists.\n";
  37 +
  38 +// Write operation.
  39 +$client->set('foo', 'bar');
  40 +$current = $client->getConnection()->getCurrent()->getParameters();
  41 +echo "Now 'foo' has been set to 'bar' on {$current->alias}!\n";
  42 +
  43 +// Read operation.
  44 +$bar = $client->get('foo');
  45 +$current = $client->getConnection()->getCurrent()->getParameters();
  46 +echo "We just fetched 'foo' from {$current->alias} and its value is '$bar'.\n";
  47 +
  48 +/* OUTPUT:
  49 +Does 'foo' exist on slave? yes.
  50 +Now 'foo' has been set to 'bar' on master!
  51 +We just fetched 'foo' from master and its value is 'bar'.
  52 +*/

0 comments on commit 466c666

Please sign in to comment.
Something went wrong with that request. Please try again.