Try Infinispan .
Infinispan cache can be used as distributed cache and also can be used as Replicated cache .
There is no possibility of Single Point Failure .
In distributed cache mode it can provide more space than Heap Size.
Consider there is 4 node in cluster each with 1GB Heap Size and Infinispan use as Replicated cache then total size cluster has 1 Gb but if Infinispan used as Distributed cache and set 2 copy per data item then total size will be 2Gb .
http://www.jboss.org/infinispan