title: Deciding suitable key value store : Voldemort vs Cassandra vs Memcached vs Redis
body: <p>I am using triple store database for one of my project (semantic search engine for healthcare) and it works pretty fine. I am considering on giving it a performance boost by using a layer of key value store above triple store. Triple store querying is slower since we do deep semantic processing.</p>
  
  <p>This is how I am planning to improve performance:</p>
  
  <p>1) Running Hadoop job for all query terms every day by querying triple store.
  2) Caching these results in a key value store in a cluster.
  3) When user searches for a query term, instead of searching triple store, key value store will be searched first. Triple store will be searched only when query term not found in key value store.</p>
  
  <p>Key value pair which I plan to save is a "String" to "List of POJO mapping". I can save it as a BLOB.</p>
  
  <p>I am confused on using which key value store. I am looking mainly for failover and load balancing support. All I need is a simple key value store which provides above features. I do not need to sort/search within values or any other functionalities.</p>
  
  <p>Please correct me if I am wrong. I am assuming memcached and Redis will be faster since it is in memory. But I do not know if any Java clients of Redis(Jredis) or memchaced(Spymemcached) supports failover. I am not sure whether to go with in memory or persistent storage. I am also considering Voldemort, Cassandra and HBase. Overall key values will be around 2GB to 4GB size. Any pointers on this will be really helpful.</p>
  
  <p>I am very new to nosql and key value stores. Please let me know if you need any more details.</p>