Releases: redis/redis-py
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)
5.0.7
5.1.0b7
Changes
π₯ Breaking Changes
- Timeseries insertion filters for close samples (#3228)
π New Features
- Support missing/empty values in search (#3231)
- Timeseries insertion filters for close samples (#3228)
π Bug Fixes
π§° Maintenance
- Re-enable Graph tests (#3287)
- Do not restrict pytest dependencies versions (#3286)
- Add CODECOV token to CI (#3285)
- Make sure the CI actually runs RESP3 tests (#3270)
- Small fixes to doctests comments (#3280)
- Bump actions/stale from 3 to 9 (#3170)
- Add missing assert in json tests (#3261)
- Bump rojopolis/spellcheck-github-actions from 0.36.0 to 0.37.0 (#3260)
- Move code samples to master branch (#3271)
- Test special characters escaping in search (#3276)
- Add extra tests for GEO search (#3244)
Contributors
We'd like to thank all the contributors who worked on this release!
@andy-stark-redis, @dependabot[bot], @enjoy-binbin, @gerzse, @Wh1isper
5.0.6
5.1.0b6
Changes
π New Features
- Hash field expiration commands (#3218)
- Support NOVALUES parameter for HSCAN (#3157)
- Support the MAXAGE option for CLIENT KILL (#3187)
π Bug Fixes
- Fix parsing of INFO response (#3265)
π§° Maintenance
- Use standard Redis docker image in CI (#3246)
- Add missing type hints for
backoff.py
(#3249) - More robust parsing of memory stats response (#3247)
- Parse FT.PROFILE response more robustly (#3245)
- Run pyupgrade for 3.8 (#3236)
- Fix typing for address_remap (fixes #3234) (#3235)
- Use new Redis logo and website (#3233)
- Update ResponseT type alias (#3227)
- Streamline documentation style (#3232)
- Document XREAD of last message (+) (#3188)
- Fix CNs in test certificates (#3226)