<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def MICECache(subsystem, parent_cache=None):
 """Construct a |MICE| cache. Uses either a Redis-backed cache or a local dict cache on the object. Args: subsystem (Subsystem):
 The subsystem that this is a cache for. Kwargs: parent_cache (MICECache):
 The cache generated by the uncut version of ``subsystem``. Any cached |MICE| which are unaffected by the cut are reused in this cache. If None, the cache is initialized empty. """

    if config.REDIS_CACHE:
        cls = RedisMICECache
    else:
        cls = DictMICECache
    return cls(subsystem, parent_cache=parent_cache)