free
command shows the information about unused and used memory and swap space.
Below is the explanation provided by http://www.linfo.org/free.html
The first row, labeled Mem, displays physical memory utilization,
including the amount of memory allocated to buffers and caches. A
buffer, also called buffer memory, is usually defined as a portion of
memory that is set aside as a temporary holding place for data that is
being sent to or received from an external device, such as a HDD,
keyboard, printer or network.
The second line of data, which begins with -/+ buffers/cache, shows
the amount of physical memory currently devoted to system buffer
cache. This is particularly meaningful with regard to application
programs, as all data accessed from files on the system that are
performed through the use of read() and write() system calls1 pass
through this cache. This cache can greatly speed up access to data by
reducing or eliminating the need to read from or write to the HDD or
other disk.
The third row, which begins with Swap, shows the total swap space as
well as how much of it is currently in use and how much is still
available.
Lets analyse the your system's memory usage
You have used free
command with '-m' option, which is used to display the result in megabytes
-m, --mega
Display the amount of memory in megabytes.
Total memory is 595(Used+free)
Used: 482
Free: 112
482MB out of 595MB is used by your system, in which only 93MB is used by active programs and remaining 324MB are in cache
So when you run any program in future, say which requires more 120MB. All 112MB(currently free) will be given and remaining 8MB will be taken from the non-active program buffer/cache.
Edit: Found this link, which provides good explanation.