What is Caching and what are the benefits of using it?

Caching is a mechanism that improves performance for an application by storing data in the memory for faster access. When the application accesses data from Cache (i.e. in-memory) instead of fetching it from the original data store (maybe a database), it definitely improves performance. But Caching benefits are not limited only to performance; it also improves application Scalability and Availability.