For somebody who is new to Drupal, I see that there are many resources available on Drupal Caching but I am not sure which of them to use.
closed as too broad by MPD♦ Jun 20 at 16:50
There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.
These are notes from my experiences and might vary from what others experience. I predominantly use LAMP stack and have considered the same in my suggestions.
Thumb rules for caching that I generally follow.
Improve Performance of a Drupal Site (In the increasing order of complexity)
The database layer is important. I cover some parts of it and the basics in this presentation http://goo.gl/30yi39
As a companion to Gokul's answer here's the way I would think about what you want to cache in Drupal (not ordered by complexity):
Caching means speeding up repeated activities.
The big repeat actions involved in a Drupal website are:
Caching an entire webpage
The biggest caching gains are to be had from finding a way to cache an entire webpage without ever running the PHP code or calling the database.
However this won't work if parts of the page have to be different (i.e. users login and their name appears at the top).
In order to get that to work you need to look into Authcache.
You can cache PHP with APC, or if you have version 5.5 or greater then a different cache is built in.
This is done server side and means chunks of your PHP code will be remembered. You're caching PHP for Drupal but you're not technically interacting with Drupal.
Calls to grab information from the database are expensive.
The commonest database caching mechanism is memcache.
This caches database objects in RAM, so instead of making a call to a database object on the harddrive, you just pull it from the RAM which is a lot faster.