MongoDB is one of the popular open source and document oriented database systems. It belongs to a family of databases called NoSQL, which is different from the traditional table based SQL databases. It makes use of collections, each having multiple documents, and allows the user to store data in a non relational format. Data is stored in flexible, JSON-like documents where fields can vary from document to document.
Redis is an open-source in-memory key-value data store. It can be used as a database, cache, message broker and supports various data structures such as Strings, Hashes, Lists, Sets, etc... Apart from its performance and flexibility, Redis stands out with its wide language support, high availability, and automatic partitioning.
MySQL is an open-source relational database management system (RDBMS). Its name is a combination of My and SQL the abbreviation for Structured Query Language. A relational database organizes data into one or more data tables in which data types may be related to each other; these relations help structure the data. SQL is a language programmers use to create, modify and extract data from the relational database, as well as control user access to the database.
Many applications start their web server and database hosted on the same machine. It's simpler, cheaper and easier to manage. However, as our application grows , a setup like this can bring security issues and scalability problems. A common solution is to separate our database from the application: creating a dedicated database server and allowing applications to connect remotely. This setup is more secure, it can provide you a better analysis of the bottlenecks and definitely makes the scalability easier.