Zookeeper vs In-memory-data-grid vs Redis
<p>I've found different zookeeper definitions across multiple resources. Maybe some of them are taken out of context, but look at them pls:</p>

<ol>
<li><blockquote>
  <p><a href="https://stackoverflow.com/questions/3662995/explaining-apache-zookeeper">A canonical example of Zookeeper usage is distributed-memory computation...</a></p>
</blockquote></li>
<li><blockquote>
  <p><a href="http://www-01.ibm.com/software/data/infosphere/hadoop/zookeeper/" rel="noreferrer">ZooKeeper is an open source Apache™ project that provides a centralized infrastructure and services that enable synchronization across a cluster.</a></p>
</blockquote></li>
<li><blockquote>
  <p><a href="http://searchcloudcomputing.techtarget.com/definition/Apache-ZooKeeper" rel="noreferrer">Apache ZooKeeper is an open source file application program interface (API) that allows distributed processes in large systems to synchronize with each other so that all clients making requests receive consistent data.</a></p>
</blockquote></li>
</ol>

<p>I've worked with Redis and Hazelcast, that would be easier for me to understand Zookeeper by comparing it with them.</p>

<p><em>Could you please compare Zookeeper with in-memory-data-grids and Redis?</em></p>

<ol>
<li>If distributed-memory computation, how does zookeeper differ from in-memory-data-grids?</li>
<li>If synchronization across cluster, than how does it differs from all other in-memory storages? The same in-memory-data-grids also provide cluster-wide locks. Redis also has some kind of transactions.</li>
<li>If it's only about in-memory consistent data, than there are other alternatives. Imdg allow you to achieve the same, don't they?</li>
</ol>