def set_cache_impl(self, cache_impl, maxsize, **kwargs):
new_cache = self._get_cache_impl(cache_impl, maxsize, **kwargs)<EOL>self._populate_new_cache(new_cache)<EOL>self.cache = new_cache<EOL>
Change cache implementation. The contents of the old cache will
be transferred to the new one.

:param cache_impl: Name of cache implementation, must exist in AVAILABLE_CACHES