I am currently using memcached with my java app, and overall it's working great.
The features of memcached that are most important to me are:
- it's fast, since reads and writes are in-memory and don't touch the disk
- it's just a key/value store (since that's all my app needs)
- it's distributed
- it uses memory efficiently by having each object live on exactly one server
- it doesn't assume that the objects are from a database (since my objects are not database objects)
However, there is one thing that I'd like to do that memcached can't do. I want to periodically (perhaps once per day) save the cache contents to disk. And I want to be able to restore the cache from the saved disk image.
The disk save does not need to be very complex. If a new key/value is added while the save is taking place, I don't care if it's included in the save or not. And if an existing key/value is modified while the save is taking place, the saved value should be either the old value or the new value, but I don't care which one.
Can anyone recommend another caching solution (either free or commercial) that has all (or a significant percentage) of the memcached features that are important to me, and also allows the ability to save and restore the entire cache from disk?