<div>If you aren't familiar with presharding, read <a href="http://oldblog.antirez.com/post/redis-presharding.html">http://oldblog.antirez.com/post/redis-presharding.html</a></div><div><br></div>I made some modifications to the eredis_pool application. This application integrates Wooga's eredis client and Devinus's poolboy. I thought I would mention it here in case anybody found it useful or if people wanted to contribute.<div>
<br></div><div>In sharded_eredis: <a href="https://github.com/jeremyong/sharded_eredis">https://github.com/jeremyong/sharded_eredis</a>, each pool points to a different preconfigured shard.</div><div><br></div><div>Running sharded_eredis:q([Cmd, Key, Args]) will hash the key and execute the command on the correct pool. </div>
<div><br></div><div>It also supports transactions but requires that all commands occur on the same node (this is not enforced yet).</div><div><br></div><div>Things to do:</div><div>- Give a clean way for the application can be reconfigured at runtime (in the case where shards are moved for example).</div>
<div>- Handle transactions better</div><div>- Create a library of convenience scripts for managing many redis shards and moving things around (slaves, replication, failover, etc).</div><div><br></div><div>--</div><div>see also my mini blog post on the matter <a href="http://www.jeremyong.com/blog/2012/11/21/sharded-eredis/">http://www.jeremyong.com/blog/2012/11/21/sharded-eredis/</a></div>