A Cache (pronounced “cash”) is a file that is created wihen you wish to store off the results of an animation or simulation for easy reuse and consistent results. Why would you want to do this? First, in order to render across a render farm, you want the results produced by the farm to match the results on your primary machine. A cache would have to be created on your primary machine at first, and then referenced within Cinema 4D before you initiate your network render. While a simulation is the obvious choice for this, there are also other reasons to create cache files.
Animation Baking: in animation studios, the creative process goes through many hands, from modelers, to riggers, to animators, to lighters, to the effects animators, and to the render wranglers. As you might imagine, any unforeseen (or unapproved) changes would cause havoc, so steps are taken to insure that such things do not happen. This saves both time and money. So, since animators are typically only part of the workflow, once an animation take is approved, that take is locked down before anything else is done. A cache file is created, and that cache file is an unchangeable record of the animation, and provides consistentency throughout the rest of the process. In this manner, lighters (those who assign the lighting to the shot, as well as the materials and textures to the elements in the shot) do not have to concern themselves with accidentally nudging an element out of place, or worse, as they simply cannot do so. As this is standard practice today, you may ask if that has always been the case. In a word, no. Some poor cog in the production pipeline wheel at one time or another made a mistake that could have been avoided, and so this workflow was developed as a protection device. You would not have want to have been that guy…
Performance: A cache file is a listing of all of the assigned object information written out as a frame by frame record. It is far simpler and faster for a computer to read back this information and position elements in real time as dictated by the cache than it is to drive keyframes, deformations, sims, hair and so on in real time. The difference is quite incredible, actually. In fact, the only drawbacks to using a cache is the time it takes to generate the cache, using the cache improperly, or the disk space penalty (the files can, and do, get large).
While caching is a professional workflow, there is no real downside to using the cache for personal projects: the risks of not doing so are the same as in a professional pipeline, as are the benefits. You know what they say… “cache is king.”