redis-py
redis-py copied to clipboard
Add Support for redis 7 commands
As part of the upcoming Redis 7 release, at least the following commands should be implemented. As part of this tracking, we'll also need to start a redis 7 docker, and integrate it into tox. For commands that will not be implemented in the client - we want to define a function, and raise a NotImplementedError (like others!), ensuring the documentation states that this is the behaviour.
- [x] #1798
- [x] #1799
- [x] #1800
- [x] #1801
- [x] #1802
- [x] #1803
- [x] #1804
- [x] #1805
- [x] #1806
- [x] #1807
- [x] #1808
- [x] #1809
- [x] #1810
- [x] #1811
- [x] #1846
- [x] #1938
- [x] #1939
- [ ] #1940
- [ ] #1941
- [ ] #1942
- [ ] #1943
- [x] #1945
- [x] #1946
- [x] #1947
- [x] #1948
- [x] #1949
- [x] #1950
- [x] #1951
- [x] #1952
- [x] #1953
- [x] #1954
- [x] #1955
- [x] #1956
- [x] #1957
- [x] #1958
- [x] #1959
- [x] #1960
- [x] #1965
- [x] #1967
- [x] #2120
- [x] #2121
- [x] #2122
- [x] #2123
- [x] #2124
- [x] #2125
- [x] #2126
- [x] #2127
- [x] #2128
- [x] #2129
- [x] #2130
- [ ] #2131
- [x] #2132
- [ ] #2133
- [ ] #2134
- [x] #2135
- [x] #2136
There will be new publish commands, per (https://github.com/redis/redis/pull/8621/files). Mentioning this because the logic for pubsub will also be changed a little bit for cluster mode. There is logic that sets the "first" key from a command , https://github.com/redis/redis-py/blob/b94e230b17d08e6c89d134e933c706256b79bc4a/redis/commands/parser.py#L112, that explicitly looks for a pubsub flag + the name, this will cause the new commands to return NULL.
Is it possible for there to be a change in ownership of aioredis to RedisLab or for Redis employees to make parallel PRs to aioredis? All these commands only need a simple async/await combination. Aioredis is vital to the asyncio Python community like FastAPI and Django channels, and I can't keep up with a paid staff, especially during school.
@Andrew-Chen-Wang I'm not from Redis Ltd, but perhaps it might make sense to merge in the async functionality into the main repo instead of maintaining a fork? Would that be a lot of work?