Skip to content

Releases: redis/redis-py

5.1.1

04 Oct 13:02
4b3a6d0
Compare
Choose a tag to compare

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?

  1. Install redis-py 5.1.0
  2. 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

27 Sep 16:17
7215a52
Compare
Choose a tag to compare

Changes

πŸš€ New Features

How to start with Client-side caching?

  1. Install redis-py 5.1.0
  2. 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

30 Jul 14:11
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • Added support for ADDSCORES modifier (#3329)

Contributors

We'd like to thank all the contributors who worked on this release!

@vladvildanov

5.0.8

29 Jul 13:56
Compare
Choose a tag to compare

Changes

  • Resolve some docs warnings (#3322)
  • Add missing type hints for retry.py (#3250)

πŸ”₯ 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

  • Add extra tests for GEO search (#3244)
  • Test special characters escaping in search (#3276)

πŸ› Bug Fixes

  • Decode search results at field level (#3309)

5.0.7

26 Jun 13:19
7b3f0d6
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • None UnixDomainSocket timeout (#3293)

🧰 Maintenance

  • Updated redis version to represent latest available build (#3296)

Contributors

We'd like to thank all the contributors who worked on this release!

@vladvildanov @dmaier-redislabs

5.1.0b7

20 Jun 09:22
70b4f48
Compare
Choose a tag to compare
5.1.0b7 Pre-release
Pre-release

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

  • Improve parsing of XINFO STREAM response (#3282)
  • Handle lists in the response of INFO (#3278)

🧰 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

13 Jun 16:08
40a9092
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • Handle lists in the response of INFO

5.1.0b6

06 Jun 18:03
3a0c724
Compare
Choose a tag to compare
5.1.0b6 Pre-release
Pre-release

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)

5.0.5

06 Jun 08:07
6f55c02
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • Fix parsing of INFO response (#3265)

5.1.0b5

08 May 13:28
4981761
Compare
Choose a tag to compare
5.1.0b5 Pre-release
Pre-release

Changes

πŸ§ͺ Experimental Features

  • Client side caching improvements: typing, better test coverage, bug fixes (#3216)

πŸ› Bug Fixes

  • Make it possible to customize SSL ciphers (#3214)
  • Make message in LockError optional to support backwards compatibility (#3176)

🧰 Maintenance

  • Adding a twine check prior to package release (#3198)
  • Update black version to 24.3.0 (#3193)
  • Avoid workflows canceling each other out (#3183)
  • Documentation update (asyncio_examples.ipynb) (#3125)
  • Optimizing cluster initialization changing the checks for cluster-enabled flag (#3158)
  • Bump release-drafter/release-drafter from 5 to 6 (#3171)
  • Bump rojopolis/spellcheck-github-actions from 0.35.0 to 0.36.0 (#3172)
  • Remove redundant async-timeout dependency from modern Python (#3177)

Contributors

We'd like to thank all the contributors who worked on this release!

@AYMENJD, @AniketP04, @BackflipPenguin, @ING-XIAOJIAN, @MrDenkoV, @Pedram-Parsian, @TheBlusky, @Zaczero, @ahmedabdou14, @akx, @chayim, @d184230, @danielzhangau, @dmkulazhenko, @dvora-h, @enjoy-binbin, @gerzse, @hongqn, @jakob-keller, @kristjanvalur, @matrey, @mattwang44, @parmenashp, @poiuj, @r0ro, @sjpotter, @tbbream, @trkwyk, @w-miller, @wKollendorf, @willianmrs, @zakaf, @zware and @zxjlm