Caching

I implemented cache in Ad_Code_Manager::get_ad_codes(), but cache keys are variables. That posed the following question: what’s the best strategy to clear the cache? We can’t just easily flush the whole ‘acm’ group. There is a couple of ways to do that, each with each own drawbacks:
1. store keys as an option (but then you have to update it, whenever you add a new key)
2. store keys as another cache key (but then it might expire)
3. store keys as transient (not sure if it’s good from any POV)

Any advice is much appreciated!