This might be due to the way a cache plugin works and how a cache is effective, but here is our situation:
We got a page with thousands of filterable reference projects. Currently they are filtered locally with JS.
Because of performance we will switch to serverside filtering. So each filter combination will be filtered by the server, so it will create a cached version for all these combinations.
Currently we use Wp Fastest Cache but this plugin creates one individual file per page/ per entry.
We have 4-5 filters with up to 20 options. All these combines (20^4) are up to 160k, which results in 160k individual cache files.
Our server has a maximum amount of files that we can store and cannot increase. That is due to the contract.
So I'm looking for an effective cache plugin that combines multiple cache files into one and doesn't create such a bloated amount of files.
I hope the problem and the needs are clear, if you need more information, please let me know.

Persistent object with redis or sqlite can save frequent queries to a temporary database. Also there are page cache solutions that can save to memory instead of disk. The WordPress cache plugins probably can’t do it, but server level caches like mod_cache, souin, and (I believe) fastcgi and varnish can save cache to memory. Memory based cache is much much faster than disk cache but isn’t as resilient as memory is volatile.
You can try **WP Rocket**, the caching approach can help manage file bloat more efficiently.
I’d recommend using WP Rocket. It doesn’t bloat your site. But if you need more options then I like some of the other [caching plugins](https://www.wpbeginner.com/plugins/best-wordpress-caching-plugins/), like WP Super Cache and total cache.
Your filter works with url parameters I assume? Many cache plugins including the free version of w3tc let you choose to not cache pages based on whether a certain parameter name is there or not.