Cache: Caching is a small but high-speed memory that sits between the CPU and the main memory.
Because the CPU speed is much higher than the main memory, the CPU accesses the data directly from the memory to wait for a certain period of time, the cache holds the CPU just used or recycled part of the data, when the CPU re-use the part of the data can be directly called from the cache, which reduces the CPU waiting time, Improve the efficiency of the system.
Buffer : Buffer, an area for transferring data between devices that are not synchronized or with different priorities. through buffers, you can reduce the number of waits between processes, so that when you read data from a slow device, the operating process of a fast device is uninterrupted.
in the  Free displayed in the command. Buffer and the Cache , they are all memory-intensive:
Buffer: The memory of buffer cache is the read-write buffer of the block device, closer to the storage device, or directly to disk's buffer.
Cache: The memory of the page cache, the cache of the file system, is the buffer
The difference between buffer and cache