Does discourse have a cache?

No, because Discourse is for the most part serving dynamic content. Varnish as in in-memory cache of static content makes no sense here.

That depends, if you’re self-hosting have you configured one?