Releases: redis/redis-py
5.3.0b3
Changes
π New Features
Token-based authentication:
- Added StreamingCredentialProvider interface (#3445)
- Extended CredentialProvider class with get_credentials_async method (#3445)
- Added event-driven entities (Dispatcher, Listener, Events) (#3445)
New StreamingCredentialProvider interface was added with an idea to integrate redis-py with credential providers that stream an events that should be handled by given listeners.
Check the documentation for the quick start guide.
π§° Maintenance
- Fixed package version
Contributors
We'd like to thank all the contributors who worked on this release!
5.3.0b2
Changes
π Bug Fixes
- Fixed Token-based authentication documentation
Contributors
We'd like to thank all the contributors who worked on this release!
5.3.0b1
Changes
π New Features
Token-based authentication:
- Added StreamingCredentialProvider interface (#3445)
- Extended CredentialProvider class with get_credentials_async method (#3445)
- Added event-driven entities (Dispatcher, Listener, Events) (#3445)
New StreamingCredentialProvider interface was added with an idea to integrate redis-py with credential providers that stream an events that should be handled by given listeners.
Check the documentation for the quick start guide.
Contributors
We'd like to thank all the contributors who worked on this release!
5.2.1
Changes
π Bug Fixes
- Fixed unsecured tempfile.mktemp() command usage (#3446)
- Fixed bug with SLOWLOG GET response parsing on Redis Software (#3441)
- Fixed issue with invoking _close() on closed event loop (#3438)
π§° Maintenance
- Migrate test infrastructure to new custom docker images (#3415)
- Fixed flacky test with HEXPIREAT command (#3437)
Contributors
We'd like to thank all the contributors who worked on this release!
5.2.0
5.1.1
Changes
5.1.1
π Bug Fixes
- Fixed return type for Redis Set commands to be Set instead of List (#3399)
- Fixed bug with partial Hiredis availability (#3400)
- Fixed bug with async pipeline and cluster fails with some commands (#3402)
5.1.0
π New Features
How to start with Client-side caching?
- Install redis-py 5.1.0
- Use the following code snippet:
r = Redis(protocol=3, cache_config=CacheConfig())
cache = r.get_cache()
r.set("foo", "bar")
# get key from redis and save in local cache
print(r.get("foo"))
# get key from local cache
print(cache.get(CacheKey(command="GET", redis_keys=("foo",))).cache_value)
# change key in redis (cause invalidation)
r.set("foo", "barbar")
# Retrieves a new value from server and cache it
print(r.get("foo"))
# Make sure that new value was cached
print(cache.get(CacheKey(command="GET", redis_keys=("foo",))).cache_value)
Check documentation to get more examples
π₯ Breaking Changes
- Timeseries insertion filters for close samples (#3228)
- Enhanced classes string representation (#3001)
- Partial clean up of Python 3.7 compatibility (#2928)
- Handle Redis Set data type as Python list to avoid a limitations with nested dictionaries (#3324)
Contributors
We'd like to thank all the contributors who worked on this release!
@vladvildanov @dmaier-redislabs @vineethvkumar @ramchandra-st @RafalBielickiIM @jules-ch
5.1.0
Changes
π New Features
How to start with Client-side caching?
- Install redis-py 5.1.0
- Use the following code snippet:
r = Redis(protocol=3, cache_config=CacheConfig())
cache = r.get_cache()
r.set("foo", "bar")
# get key from redis and save in local cache
print(r.get("foo"))
# get key from local cache
print(cache.get(CacheKey(command="GET", redis_keys=("foo",))).cache_value)
# change key in redis (cause invalidation)
r.set("foo", "barbar")
# Retrieves a new value from server and cache it
print(r.get("foo"))
# Make sure that new value was cached
print(cache.get(CacheKey(command="GET", redis_keys=("foo",))).cache_value)
Check documentation to get more examples
π₯ Breaking Changes
- Timeseries insertion filters for close samples (#3228)
- Enhanced classes string representation (#3001)
- Partial clean up of Python 3.7 compatibility (#2928)
- Handle RESP3 sets as Python lists (#3324)
π Bug Fixes
- Handle RESP3 sets as Python lists (#3324)
- Prevent async ClusterPipeline instances from becoming "false-y" (#3068)
- Add hostname field to _parse_node_line (#3343)
- More docs fixes (#3326)
- Delete the first-defined (and thus "duplicate") Script class (#3333)
- Catch a known DeprecationWarning when calling .close() (#3335)
- Add missed redismod at test_commands.py (#3369)
π§° Maintenance
- Update README.md - mentioning redis 7.4 support (#3375)
- Update PyPy 3.8 to 3.10 in CI (#3370)
- Updated commands from docker-compose to docker compose (#3352)
- Added version restrictions for pytest-asyncio (#3362)
- Documentation examples (#3361, #3372, #3374, #3377, #3378)
Contributors
We'd like to thank all the contributors who worked on this release!
@AYMENJD, @AniketP04, @BackflipPenguin, @ING-XIAOJIAN, @MrDenkoV, @Pedram-Parsian, @TheBlusky, @TomerHekmati, @Wh1isper, @Zaczero, @ahmedabdou14, @akx, @andy-stark-redis, @catap, @chayim, @d184230, @danielzhangau, @daveisfera, @dependabot, @dependabot[bot], @dkuser, @dmaier-redislabs, @dmkulazhenko, @dudizimber, @dvora-h, @dwdougherty, @enjoy-binbin, @gerzse, @hongqn, @jakob-keller, @kristjanvalur, @kurtmckee, @matrey, @mattwang44, @max-muoto, @parmenashp, @poiuj, @r0ro, @sjpotter, @tbbream, @trkwyk, @uglide, @vladvildanov, @w-miller, @wKollendorf, @willfrey, @willianmrs, @zakaf, @zware and @zxjlm
5.0.9
Changes
π New Features
- Added support for ADDSCORES modifier (#3329)
Contributors
We'd like to thank all the contributors who worked on this release!
5.0.8
Changes
π₯ Breaking Changes
- Timeseries insertion filters for close samples (#3228)
π New Features
- Hash field expiration commands (#3218)
- Support the MAXAGE option for CLIENT KILL (#3187)
- Support NOVALUES parameter for HSCAN (#3157)
- Document XREAD of last message (+) (#3187)
- Support missing/empty values in search (#3231)
- Timeseries insertion filters for close samples (#3228)
π§° Maintenance
π Bug Fixes
- Decode search results at field level (#3309)