I need a comparison table of some sort for database varieties (MySQL, SQLite etc.). I can’t find one.
My use case is, I am implementing storage of objects in a distributed hash table. I need a database solution that is:
- Fast for sorting
- Simplistic (no users, preferably no additional structures like multiple tables etc.)
- Concurrent (if possible)
- Multi-platform
- File based (not stored in memory primarily)
- Centralized
I will be programming in Go.
As I understand, I believe I need what is called a Document Orientated Database, because I am storing objects, identified by keys.
EDIT: While I am implementing a DHT, I will also be storing metadata about the objects, such as access counts etc. It would also be preferable to have TLL (time to live)
“Document oriented” isn’t what I would call what you want. I think you want a “key-value store,” which is probably the simplest type of NoSQL to use. You can do something like this:
As such, I recommend redis, which I find pleasantly “light” compared to the heavier and more structured alternatives. You can try it at Try Redis, which is a functional interactive shell.
Edit: your comment, as well as your edit, continue to recommend Redis. Redis has TTL, in the form of two commands:
expire, which takes a number of seconds, andexpireat, which takes a Unix timestamp. In addition, it allows hashes, which meet your needs (as I understand them):