Databases you should know as a developer
Tags: webdev, database
Published: 2021-08-14 11:50:00

Every company needs a database to store and organize data. Data can be very sensitive so we always have to be careful while accessing or manipulating it in the database.
##Redis
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb9umjtph0ennr2xbteu.png) 
Redis is an in-memory data store. Since main memory(RAM) read/write operation is faster than the disk read/write ( databases like MySQL, Mongo, h2 are storing data in hard disk), you can massively improve the performance of your application.Remember, since Redis is in memory, it is volatile in nature by default, but you can configure it for write to disk at regular intervals so if the server fails you won't lose your data.

Redis is not a replacement for your database. One common use case is using it as the data cache, by loading frequently accessing data sets to Redis, you can avoid too many reads to your database and can improve the performance of the application.
##Cassandra
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5gdb7k2btbv623g5jq9.png) 
The Apache Cassandra database is the right choice of database if you are looking for scalability and high availability without compromising performance for your mission-critical applications.
* Easily Deals With Velocity, Variety, and Complexity Issues.
* Can Handle Massive Datasets.
* Homogeneous Environment.
* Ease of Administration.

##MongoDB
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/31p44p7n7xbwet8eui23.png) 
MongoDB is a cross-platform NoSQL database. You can use this database for mobile apps, real-time analytics, IoT, and can provide a real-time view for all your data. MongoDB is a high-speed database and the data is stored in the form of JSON style documents. It has deployment flexibility, high performance, high availability and easy scalability.
##MySQL
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8lef5y2aouboeus3tgp.png) 
MySQL is a very popular open-source RDBMS which is used by most of the major tech companies
such as Facebook, Google, Twitter and Adobe. It was acquired by Oracle as a part of Sun Microsystems’ acquisition in 2009.
MySQL has different features for different editions (Enterprise Edition, Standard Edition, and Classic Edition).
##PostgreSQL
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j1yacihpxh650j0ss6tt.png) 
This database is also an open-source Object-Relational DBMS but users are free to create NoSQL databases.
It is ideal for companies that frequently deal with large volumes of data. A lot of gaming apps, database automation tools, and domain registries use this database. Companies such as Apple (macOS Server operating system uses this database), Cisco, Fujitsu, Skype, and IMDb, etc use this database.
##Neo4j
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/revwf69ee9dterf7him0.png) 
Neo4j is the first and dominant mover in the graph market. The company’s goal is to bring graph technology into the mainstream by connecting the community, customers, partners and even competitors as they adopt graph best practices everywhere.
* Highly Performant Read and Write Scalability, Without Compromise.
* Rock-Solid Reliability for Mission-Critical Production Applications.
* Whiteboard-friendly Data Modeling to Simplify the Development Cycle.

##Elasticsearch
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v2enrxj8sgtay93zw9p3.png) 
ElasticSearch is a search engine based on the Lucene library. It is a distributed and open-source full-text search and analytics engine. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. A lot of big organizations like Wikipedia, The Guardian, StackOverflow, GitHub, etc.
* It allows you to create replicas of their indexes and shards.
* It is scalable up to petabytes of structured and unstructured data.
* Multi tenancy and extremely fast search.
* Designed to operate in real-time.

##GraphQL
![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/use6anovq9jxlxl8jjy4.png)
GraphQL allows making multiple resources request in a single query call, which saves a lot of time and bandwidth by reducing the number of network round trips to the server. It also helps to save waterfall network requests, where you need to resolve dependent resources on previous requests. For example, consider a blog’s homepage where you need to display multiple widgets, such as recent posts, the most popular posts, categories, and featured posts. With REST architecture, displaying these would take at least five requests, while a similar scenario using GraphQL requires a single GraphQL request.
#Conclusion
There are multiple popular databases. According to  your project requirements you should find out the best tool for the job.