﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
36590	Redis, Memcached, and Database cache backends lack specialized many operation implementations	Brian Atkinson	H. White	"The Redis cache backend has a specialized implementation of get_many and set_many which perform the get/set in one command to the backend. However the similar aget_many and aset_many methods are not specialized. This results in the performance of these async batch methods being significantly slower than they could be. We've seen significant performance improvements by adding the following methods to a sub-class of the built-in RedisCache class:

{{{
    async def aget_many(self, keys, version=None):
        return await sync_to_async(self.get_many)(keys, version=version)

    async def aset_many(self, data, timeout=DEFAULT_TIMEOUT, version=None):
        return await sync_to_async(self.set_many)(data, timeout=timeout, version=version)
}}}

These were the only ones we've overridden, but there might be a few others which could benefit from an improved implementation in a similar way. Happy to send a PR for a change similar to above for these missing specializations if desired."	Cleanup/optimization	closed	Core (Cache system)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
