About the topic of this thread


According to  https://db-engines.com/en/ranking the top 10 databases is:
According to StackOverflow survey 2018:
  • MySQL
  • MS SQL Server
  • PostgreSQL
  • MongoDB
  • SQLite
  • Redis
  • ElasticSearch
  • MariaDB (MySQL fork)
  • Oracle
  • MS Azure (Tables, CosmosDB, SQL, etc)
https://insights.stackoverflow.com/survey/2018/#technology-_-databases

Based on this it very clear SQL support is the big name.

There is ElasticSearch, MongoDB and REDIS.

My knowledge of ElasticSearch is not good enough to tell whether
it can share a similar interface to SQL DBs, I would say it depends
of the interface. I would say "maybe yes" if we exclude the query
language from the specification.

Similarly, MongoDB works using the same principles as SQL when
you consider that it it takes a query as input and outputs a list of objects.
Unlike SQL objects are free-form.

Regarding REDIS, my point of view is that it would be a mistake to
standardize a REDIS interface because REDIS is basically those things:

1) In memory datastructures hosted in a hash-table
2) publish-subscribe server
3) master-slave replication
4) persistence via memory dump or messages replay
5) LUA scripting
6) Distributed lock (called red lock)
7) Time based key eviction algorithm (best effort)

I have been a long time advocate against the use of REDIS. The most tooted
advantage of REDIS is that it is fast. It is fast because it is stored in memory.
And if you abuse the REDIS commands network overhead it will kill performance.

My point is if you want to offer a good story for what REDIS does, it will be best
to work on a good network socket SRFI.