Check out <a href="http://www.alachisoft.com/download.html>NCache </a>.
It is a distributed cache solution for .NET and
JAVA that allows you use various cache toplogies such as Partitioned cache, where each cached item is partitioned across different servers, Replicated cache that keeps a copy of each item on every cache server, mirrored and client cache.
It also lets you use data expiration, eviction, read/write-through caching and more.
With NCache, you get high availability of data and you also get best performance even at peak load times.