#33573: Add native async support to redis cache backend
-------------------------------------+-------------------------------------
     Reporter:  Christopher Bailey   |                    Owner:  nobody
         Type:  New feature          |                   Status:  new
    Component:  Core (Cache system)  |                  Version:  dev
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Someday/Maybe
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Christopher Bailey:

Old description:

> The latest version of redis-py will support both sync and async clients
> so `sync_to_async` will no longer be necessary so it would be nice if the
> out of the box Redis cache backend supports both natively as well.
>
> https://github.com/redis/redis-py/releases/tag/v4.2.0rc1
>
> It may be a bit premature since 4.2.0 is still RC, but I wanted to get a
> ticket out there so it can be on someones radar.

New description:

 Do you have an idea for implementation? As far as I'm aware this would
 require initializing two redis clients: async and non-async.

 I kind of started to implement it, but then realized it was likely going
 to be a bigger issue then I though. But there is already an abstract
 RedisClient class that is a wrapper around the base redis.Redis class. It
 maintains connection polls and handles all of the core commands. It has
 methods for `get`, `set`, `add`, `touch`, `incr` that just calls
 `get_client` and makes a new client using the existing connection pull any
 time it is called.

 For Async we can just add something like `get_async_client` and follow the
 same pattern within the class. I believe the connection poll should be
 able to be reused between the sync/async clients.

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/33573#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/0107017f88ced1d4-87e29488-69ac-4ce6-beea-258f7bde32e8-000000%40eu-central-1.amazonses.com.

Reply via email to