Only MemoryBackend has aclose(). The lifespan pattern in BACKENDS.md (await backend.aclose()) raises AttributeError on Redis and Memcached, users have to reach into backend.client, and redis-py warns about an unclosed client otherwise.
Proposal
A no-op async def aclose() on BaseCacheBackend; Redis awaits client.aclose(), Memcached runs client.close() in a worker thread. Optionally __aenter__/__aexit__. Document it for every backend.
Only
MemoryBackendhasaclose(). The lifespan pattern in BACKENDS.md (await backend.aclose()) raisesAttributeErroron Redis and Memcached, users have to reach intobackend.client, and redis-py warns about an unclosed client otherwise.Proposal
A no-op
async def aclose()onBaseCacheBackend; Redis awaitsclient.aclose(), Memcached runsclient.close()in a worker thread. Optionally__aenter__/__aexit__. Document it for every backend.