Per https://lists.wikimedia.org/pipermail/wikitech-l/2017-April/087887.html:
I have been trying to add certain rate limiting actions for my extension's API and noticed that it doesn't work with $wgMainCacheType set to CACHE_NONE This is because User::pingLimiter() uses ObjectCache::getLocalClusterInstance() to store the current rate limit counts.
As I recall the ping limiter originally used the main object cache instance and would have had this problem since the earliest days, but it never comes up in production since we always use a cache on Wikimedia sites and workalike configs.
This seems a poor behavior though, and should be fixed.
@aaron do you forsee any problems with changing ObjectCache::getLocalClusterInstance() to ObjectCache::getInstance(CACHE_ANYTHING) for this case? The commends in ObjectCache explicitly mention rate limiting as a good use for getLocalClusterInstance() but if this returns CACHE_NONE on default config then it's not really suitable for rate limiting as it doesn't work. :)
Alternately, should we change ObjectCache::getLocalClusterInstance() to consistently return something? Would that change any other usages?