First I would like to quickly explain about Buffer and Cache, so things can make sense up ahead :)
Difference between Buffer and Cache:

Buffer is a temporary location for storing data for a particular application and this data is not used by any other application.

Cache is a memory location to store frequently used data for faster access.

Both are temporary store for your data processing. However memory specified as buffer/cache can be made available when an application needs it, so we count it as 'free/available' memory, but Linux counts it as used memory.

Memory that isYou'd call itLinux calls it
used by applicationsUsedUsed
used, but can be made availableFree (or Available)Used (and Available)
not used for anythingFreeFree

The available you see in the output is an estimate of the amount of memory that is available for starting NEW applications, without using the swap memory.

So, to know exactly how much memory RAM is being used we take the 'used' memory number (which consist of really used memory RAM by the system plus memory used for buffer and cache), and subtract by the number in 'buff/cache' (which is used memory, but can be made available when it's needed.), and we can see that only 1036MB is being really used.
used:                4465
buff/cache:    -  3159 (can be made available)
really in use:     1306MB around 1.31GB

Now to see how much memory is really available in total for use, we take the 'total' number of memory RAM on your system, and subtract the real used RAM of above.
total:                      8241
real used RAM:   - 1306
Free RAM              6935MB around 6.94GB


So next time you see only a couple of Megabytes left in the column ‘available’, do not despair, you might still have plenty of free RAM to be taken from the Buffer/Cache.