
Database, may be described as a store room in which data is stored. Just like a store room has the options of having shelves and metal rack, sometimes even steel lockers, a database also can store data in different ways. The data could be stored in tables or documents or in certain structure which will just make it easier to work with the data.
In Redis, the formats that it uses to store and work with data inside it are various such as lists, strings, hashes, bitmaps ,sets, sorted sets with range queries, hyperloglogs, geospatial indexes, and streams.
In addition to that the different types of structures of data that are inside a database, a database may also differ based on its location.
Now your storeroom could be on the top most floor or in the office room where most of the work is done, and each of the possible location could have its advantages and disadvantages depending upon the kind of work you would need the data for , the situations in use and various other factors.
Similarly an In memory database is a database that is stored in the main memory and Redis is an in-memory database.
To top it off , Redis is an open source, meaning it can be easily accessible by anyone who wants to use it as a cache and a database. It also acts as a message broker , meaning facilitating the communication among various applications, systems and services.
And cache is more like a database , except for it is much more used to store data that can be readily accessed and modified .
So to recap
Redis is a data store , which can be used as database, cache and message broker. It is also an open source and an in-memory database.

