title: Data Partition and data persistence in in-memory distributed cache
body: <p>I am exploring different distributed in-memory databases for use in our applications. 
  I have come across one scenario and want to know if it is possible in Redis Cache and Apache Ignite Cache?</p>
  
  <ol>
  <li>Let's say my In-memory distributed cache size is 15GB</li>
  <li>I am using partitioning my data (for e.g. in Redis - Redis Cluster and similar way in Ignite)</li>
  <li>Once any of node in a cluster reaches threshold level in terms of memory
  Does it distribute data automatically across of node in Redis?
  Does it distribute data automatically across of node in Ignite?
  When eviction policy is applied in both Redis and Ignite? Only after all 
  nodes reach to there memory capacity?</li>
  <li>What if one or more nodes go down in cluster or new nodes added in cluster?</li>
  <li>What about data backup? (I know concept of Redis Sentinel for Redis)</li>
  </ol>
  
  <p>I am looking for this kind of scenario (is available in Redis Cache?) explained in this link of overview section <a href="https://apacheignite.readme.io/docs/distributed-persistent-store" rel="nofollow noreferrer">https://apacheignite.readme.io/docs/distributed-persistent-store</a></p>
  
  <p><strong>Can below thing achievable in Redis Cache?</strong></p>
  
  <p><em>Let's say I have 100 records. Cache can hold only 40 records (most frequently used) and 100 records on disk file (Not in any other database).</em> </p>
  
  <ol>
  <li>So if anything from these 100 records are requested I never have to go actual database (for e.g. Sybase db)?</li>
  <li>If key found in 100 records but its not present in in-memory cache (40 records) then get that key, put in in-memory cache and swap out other key using eviction policy to a disk file (But here on disk i have 100 records always)</li>
  <li>If key not present in Cache and disk file then only we have to go database (Sybase) and fetch it.</li>
  </ol>