distribute cache program using consistent hash, with inheriting cache_interface, you can use every store you want (redis, memcache...) as the real cache storage