Skip to content

Releases: redis/redis-py

5.3.0b4

23 Dec 10:10
Compare
Choose a tag to compare
5.3.0b4 Pre-release
Pre-release

Changes

πŸš€ New Features

Includes Token-based authentication feature from previous beta. Check release notes

πŸ› Bug Fixes

  • Fixed bug with missing PyJWT dependency (#3462)

Contributors

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

@woutdenolf @vladvildanov

5.3.0b3

20 Dec 18:21
Compare
Choose a tag to compare
5.3.0b3 Pre-release
Pre-release

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!

@vladvildanov

5.3.0b2

20 Dec 18:12
Compare
Choose a tag to compare
5.3.0b2 Pre-release
Pre-release

Changes

πŸ› Bug Fixes

  • Fixed Token-based authentication documentation

Contributors

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

@vladvildanov

5.3.0b1

20 Dec 18:07
Compare
Choose a tag to compare
5.3.0b1 Pre-release
Pre-release

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!

@uglide @vladvildanov

5.2.1

06 Dec 09:50
a74fa6a
Compare
Choose a tag to compare

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!

@IlianIliev @uglide @vladvildanov @teodorfn @akx

5.2.0

24 Oct 15:03
166ae7b
Compare
Choose a tag to compare

Changes

πŸš€ New Features

  • Extend AggregateRequest with scorer argument (#3409)

🧰 Maintenance

  • Pin pytest-profiling version due to the bug (#3417)

Contributors

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

@uglide @rbs333 @vladvildanov @dwdougherty

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)