There's a cache element in web.config:
Looking at the code absoluteExpirationIncrement and slidingExpiration attributes can be specified as well but I cant find any docs on it?
Also, if you dont specifiy these in the element it uses System.Web.Caching.Cache.NoAbsoluteExpiration and System.Web.Caching.Cache.NoSlidingExpiration defaults - is that correct?
Yes, absoluteExpirationIncrement and slidingExpiration attributes can be specified in web.config, but only one at a time.
Both are TimeSpan values, absoluteExpirationIncrement stating the time from creation of the cached object until it expires, slidingExpiration the time from last access of the cached object until it expires.
You are also correct, System.Web.Caching.Cache.NoAbsoluteExpiration and System.Web.Caching.Cache.NoSlidingExpiration are the default settings.
So with neither absoluteExpirationIncrement nor slidingExpiration set in my web.config, caching is effectively turned off for Community right now?
How does this relate to any caching at the API level – so calls through the ForumHandler for example, to GetForums() - is the framework caching these like normal EPiServer CMS is and is this cache effected by the above settings?
With neither absoluteExpirationIncrement nor slidingExpiration set in your web.config, caching is turned on and objects are by default stored in cache indefinitely, until they are evicted to make room for new objects.
Community caches as defined in the settings provided to EPiServer.Common.Cache, whereas CMS has its own handling. Community and CMS do however share the same underlying cache.