RedisGears 1.2 release notes

Plugins and JVM support. Python async await. Override commands API. Register functions on key miss events. Tracks new statistics. Python profiler support. Extended RedisAI integration.

Requirements

RedisGears v1.2.12 requires:

  • Minimum Redis compatibility version (database): 6.0.0
  • Minimum Redis Enterprise Software version (cluster): 6.0.12

1.2.12 (December 2024)

This is a maintenance release for RedisGears 1.2

Update urgency: LOW: No need to upgrade unless there are new features or fixes.

Details

  • Bug fixes:
    • #1121 Recreate the virtual environment on startup. Fixes an issue where the virtual environment might point to the old version of the Python interpreter.
    • #1122 Clear the last error after a successful run to avoid confusion if the error is relevant.
    • #1122 Clear not-yet-started executions after unregister, pause, or error on registration occcurs. (MOD-8184)
    • #1125 Fixes an issue where duplicate registration IDs are generated.

1.2.10 (October 2024)

This is a maintenance release for RedisGears 1.2

Update urgency: LOW: No need to upgrade unless there are new features or fixes.

Details

  • Bug fixes:

    • #1114 (REPLICAOF and Redis Enterprise A-A only) Cross slot violation. Avoid using RM_Call + SCAN command which might replicate multiple keys deletion inside a MULTI EXEC block when a lazy expire takes place
  • Notes:

    • RHEL7 is no longer supported

1.2.9 (March 2024)

This is a maintenance release for RedisGears 1.2

Update urgency: LOW: No need to upgrade unless there are new features or fixes.

Details

  • Features:

    • #1087 Support for RHEL9
    • #986 Added execution mode parameter to run function: allows choosing the execution mode: sync/async/async_local - same as when used with register
  • Bug fixes:

    • #1097 Fix stream reader missing notification due to wrong key name comparison (comparing using case sensitive)

1.2.7 (July 2023)

This is a maintenance release for RedisGears 1.2

Update urgency: LOW: No need to upgrade unless there are new features or fixes.

Details

  • Features:

    • #972 Upgrade JVM to 17.0.7

1.2.6 (March 2023)

This is a maintenance release for RedisGears 1.2.

Update urgency: LOW : No need to upgrade unless there are new features or fixes.

Details

  • Features:

    • #832, #844 Added IPV6 support
    • #841 Generate artifacts with dependencies included
  • Bug fixes:

    • #810 Fix invalid memory access when checking if a trigger is already registered

v1.2.5 (July 2022)

This is a maintenance release for RedisGears 1.2.

Update urgency: MODERATE : Program an upgrade of the server, but it's not urgent.

Details:

  • Bug fixes:

    • #792, #798 Execution was triggered infinitely when trimming is turned off.
    • #791, #796 Stop triggering executions during pause even on failure.
    • #794, #797 Use PythonInstallationDir configuration to find the virtual environment location on Redis Enterprise. (MOD-1734)

v1.2.4 (May 2022)

This is a maintenance release for RedisGears 1.2.

Update urgency: LOW : No need to upgrade unless there are new features you want to use.

Details:

  • Improvements:

    • #772 Added the ability to upgrade a dependency at runtime with FORCE_REQUIREMENTS_REINSTALLATION on RG.PYEXECUTE.
    • #765 Allow deactivating override Python allocators for performance improvements.
  • Bug fixes:

    • #761, #760, #778 StreamReader fixes to pause and unregister stream processing.

v1.2.3 (April 2022)

This is a maintenance release for RedisGears 1.2.

Update urgency: LOW : No need to upgrade unless there are new features you want to use.

Details:

  • Improvements:

    • #739 Added TLS support
    • #734 Pause/Unpause registrations
    • #741 Added build for Python-only artifacts
  • Bug fixes:

    • #740 Fix -nan value on registration stats

v1.2.2 (February 2022)

This is the General Availability release of RedisGears 1.2.

Headlines

Plugins and JVM support

RedisGears 1.2 comes with a new plugin mechanism that allows you to decide which languages you want to load into RedisGears. Currently, we support two languages: Python and Java (JVM languages). You can decide which language you want to use using the new Plugin configuration.

Full documentation for JVM support can be found on the Redis documentation website.

Python async await support

RedisGears provides support for Python coroutines. Each step of your gears function can now be a Python coroutine that will take the execution to the background or will wait for some event to happen. Refer to the following links for more information:

  • Async Await Support
  • Async Await Advanced Topics

Override commands API

You can override Redis vanilla commands with a function. For more information, refer to the RedisGears command hooks documentation.

Key miss event for read-through pattern

Requested by many users, RedisGears 1.2 allows you to register functions on key miss event. One use case for this is to implement a read-through caching pattern. For more information about this topic, refer to the following links:

  • Key Miss Event in the RedisGears documentation.
  • rghibernate recipe that leverages the key miss event to implement read-through from external databases.

Better visibility and analyzing tools

We improved the experience during the development phase by enabling better debugging and troubleshooting. There is still room for improvement but RedisGears 1.2 makes the first steps toward a simpler API that is easier to use. This new version allows you to name your code and upgrade it with a single Redis command. For more information, refer to the upgrade section of the RedisGears introduction documentation.

RedisGears now tracks the following new statistics to better analyze your registrations:

  • lastRunDurationMS - duration in milliseconds of the last execution
  • totalRunDurationMS - total runtime of all executions in milliseconds
  • avgRunDurationMS - average execution runtime in milliseconds

For streams, RedisGears also tracks the following data:

  • lastEstimatedLagMS - gives the last batch lag (the time difference between the first batch entry in the stream and the time the entire batch finished processing)
  • avgEstimatedLagMS - average of the lastEstimatedLagMS field.

The RG.DUMPREGISTRATIONS command exposes these new statistics.

RedisGears 1.2 also adds support for a Python profiler, specifically cProfile. For more information, refer to the documentation for the following commands:

  • RG.PYPROFILE STATS
  • RG.PYPROFILE RESET

RedisAI integration

Although RedisAI integration was already supported in v1.0, RedisGears 1.2 adds official support for all capabilities in RedisAI v1.2. The API was extended to support RedisAI DAG and was combined with the new async await API to achieve the best performance possible.

Details

Bug fixes (since 1.0.9):

  • #557, #554 RG.CONFIGGET returns user-defined configuration
  • #572 Lock Redis GIL when creating RedisAI DAG
  • #661, #536 Added RG.TRIGGERONKEY
  • #650 Do not propagate MULTI EXEC on Redis 7
  • #671, #558 Wait for cluster to be initialized when reading stream data
  • #656 Stream reader creates more than one execution on a stream
  • #676 Globals dictionary not set correctly after deserialization
  • #665, #679 Allow case-insensitive event type on command reader
  • #697 hashtag() function for Redis Enterprise
  • #688, #545 Check REDISMODULE_CTX_FLAGS_DENY_BLOCKING flag before blocking the client
Note:
  • This is the first GA version of 1.2. The version inside Redis is 1.2.2 in semantic versioning. Since the version of a module in Redis is numeric, we could not add a GA flag.

  • Minimum Redis version: 6.0.0

RATE THIS PAGE
Back to top ↑