For data that must be saved and stored correctly, we use PostgreSQL (we usually refer to it as "Postgres"). It's a thirty-year-old open source database that is highly respected, is well supported by documentation and hosting providers, and can be used by any developer who knows the SQL standard.
A guide to installing Postgres in any environment can be found in Postgres Installation Tutorial.
In recent years, a movement called NoSQL has gained popularity. Best translated as "not only SQL", tremendous effort has been made to create different kinds of databases for different use cases, often based on academic or industry research.
Our most frequently used NoSQL database is Redis, which we use for storing transient, high quantity read/write data such as activity feeds, tags, background jobs, sessions, tokens, and counters.
To install Redis you must download the sources and compile it:
wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar xzf redis-4.0.8.tar.gz cd redis-4.0.8 make
If you are usign Docker, you can use the Redis image.
Redis and Cassandra are reliable, open-source, and simple. They offer high performance and reliable predictions of its performance.
When we need to do full-text search on documents, we use Solr. Its major features include hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, and rich text documents handling.
Amazon Relational Database Service (RDS)¶
For production environments we suggest using RDS. RDS makes it easy to set up, operate, and scale a relational database in the cloud.
Some of the features that RDS provides that are helpful for us are:
Easy to Administer
RDS is compatible with the following databases engines: