I'm looking for a persistent key-value storage to use in my application. Specifically:
- It must be embeddable into Java application. Pure Java solution would be the best.
- Data must be persisted on disk, in-memory-only storage is not an option. Memory footprint size is important and overall size of key-value map can be quite large. Ideally I'd like to have some kind of LRU cache implemented over the storage.
- Both keys & values are strings (don't need to support Java object serialization, etc).
- Concurrent reads/writes are important.
What would be the best option in such case?