repached script is patch set which adds data replication feature to memcached 1.2.x.
Here are some key features of "repcached":
· asynchronous data replication.
· single master, single slave.
· support all memcached command (set, add, delete, incr/decr, flush_all)
· slave become master if master going down.
· whole data copy to slave automatically when new slave connect to master.
Build
$ MCDVER=1.2.2
$ RCDVER=1.0
$ wget http://downloads.sourceforge.net/repcached/memcached-${MCDVER}-repcached-${RCDVER}.tar.gz
$ tar zxf memcached-${MCDVER}-repcached-${RCDVER}.tar.gz
$ cd memcached-${MCDVER}-repcached-${RCDVER}
--- OR ---
$ wget http://www.danga.com/memcached/dist/memcached-${MCDVER}.tar.gz
$ tar zxf memcached-${MCDVER}.tar.gz
$ cd memcached-${MCDVER}
$ wget http://downloads.sourceforge.net/repcached/repcached-${RCDVER}-${MCDVER}.patch.gz
$ gzip -cd repcached-${RCDVER}-${MCDVER}.patch.gz | patch -p1
$ ./configure --enable-replication
[notice: cannot set both --enable-replication and --enable-thread together]
$ make
make install
Run
repcached adds two new options (-x and -X).
$ memcached -h
(snip)
-x < ip_addr > hostname or IP address of the master replication server
-X < num > TCP port number of the master (default: 11212)
There are two machines called "foo" and "bar".
foo$ ./memcached (start as master)
bar$ ./memcached -x foo (start as slave and connect to master(foo))
Client set key/val to master(foo). We can get same value from slave(bar).
Failover
If master(foo) is down, slave(bar) become the new master automatically.
Failback
start memcached at foo as slave.
foo$ ./memcached -x bar (start as slave and connect to master(bar))
All data which master(bar) has will copy to new slave(foo), then master and slave have same data.
What's New in This Release:
· release of repcached-2.1 for memcached-1.2.6
Product's homepage