Redis Enterprise Software (RS) 5.4.4 is now available. This release enables the functionality of Active-Active Redis (CRDB) combined with RoF (Redis on Flash), supports the creation of Redis databases with multiple modules, and adds other enhancements and bug fixes.

Overview

Follow these instructions for upgrading to RS 5.4.4 from RS 5.0 and above. If you have a version older than 5.0, you must first upgrade to version 5.2 (or at least 5.0).

New Features

Active-Active Redis with RoF

RS 5.4.4 lets you create Active-Active Redis databases (CRDBs) with Redis on Flash (RoF) and get the benefits of geo-distributed Redis databases along with the significant cost savings of using Redis on Flash.

Note -
You must select Redis 5 as the Redis version to use CRDB and RoF.

Support for Multiple Modules

RS 5.4.4 supports the creation and management of Redis databases with a combination of any of the following GA modules:

  • RediSearch (GA)
  • RedisGraph (GA)
  • RedisBloom (GA)
  • RedisJSON (GA)

To upgrade databases with multiple modules, you can use the rladmin upgrade command.

Note -
The syntax for the rladmin upgrade command now requires that the module_args parameter be written inside quotation marks.
  • To upgrade only the modules within an existing database, for example with RedisBloom (bf) and RedisJSON:

    rladmin upgrade module db_name db1 module_name bf version 10003 module_args "" module_name ReJSON version 10001 module_args ""
  • To upgrade a database with its modules, for example db1 with RediSearch and RedisGraph:

    rladmin upgrade db db1 and module module_name redisearch version 103 module_args "ON_TIMEOUT FAIL NOGC" and module module_name graph version 10016 module_args ""

You can also upgrade the modules with the REST API.

  • To upgrade multiple modules, enter the details of each module in the modules parameter:

    curl -X POST -u "demo@redislabs.com:password" -H "Content-Type: application/json" -d '{"modules":[{"module_name": "ReJSON", "current_module": "<module_uid>", "new_module": "<module_uid>", "new_module_args": "", "current_semantic_version":"1.0.4"}, {"module_name":"ft","current_module":"<module_uid>","new_module": "<module_uid>","current_semantic_version":"1.4.3", "new_module_args":"PARTITIONS AUTO"}], "force_restart":true}' https://127.0.0.1:9443/v1/bdbs/2/modules/upgrade
  • To upgrade a single module, you can either:

    • Enter the details of the module in the modules parameter
    • Enter the details of the module without the modules parameter, as in previous releases

Additional Capabilities

  • Support for persistence of AOF every 1 second in Active-Active Redis (CRDB), in addition to AOF every write. We recommend that you use AOF every 1 second for the best performance during the initial CRDB sync of a new replica.
  • Nginx version updated to 1.14.2

Information

Important Fixes

  • RS26508 - Fixed redis-cli failure for a specific CRDB data type.
  • RS29191 - Fixed a failure when removing a replica from a CRDB.
  • RS29097 - Fixed a misconfiguration when using SFTP backup and encounter a node failure.
  • RS28286 - Updated SETEX and PSETEX commands output of CRDB to match Redis outputs.
  • RS26984 - Fixed metrics_exporter reports for node and shard level metrics.
  • RS19854 - Fixed uploading a Redis Module so you can upload a Redis Module when the Web UI is connected to any node.
  • RS29238 - Improved the compression performance in CRDB.

Known Limitations

Upgrade

  • RS 5.4.2 introduced new Active-Active Redis (CRDB) capabilities that improve its compatibility with open source Redis. Now the string data-type in CRDB is implicitly and dynamically typed, just like open source Redis. To use the new capabilities on nodes that are upgraded from version RS 5.4.2 or lower, you must upgrade the CRDB protocol.
  • Before you upgrade a database with RediSearch Module to Redis 5.0, you must upgrade the RediSearch Module to version 1.4.2 or above.
  • Node upgrade fails if the SSL certificates were configured in version 5.0.2 or above by manually updating the certificates on the disk instead of updating them through the API. For assistance with this issue, contact Support.
  • We recommend that you test module upgrade commands in a test environment before you upgrade modules in a production environment. The module upgrade arguments are not validated during the upgrade process and incorrect arguments can cause unexpected downtime.
  • Starting from RS 5.4.2, to preserve the current Redis major.minor version during database upgrade you must use the keep_redis_version option instead of keep_current_version.

Subscriptions

  • If a user subscribes to a channel during recovery of a CRDB from AOF, the user receives old messages that are stored in the AOF file.

Cluster API

  • The API for removing a node is updated in RS 5.4.2 or higher. The API call must include json data and the "Content-Type: application/json" header. For example:

    curl -X POST -H "Content-Type: application/json" -i -k -u user@redislabs.com:passsword https://localhost:9443/v1/nodes/3/actions/remove --data "{}"

Redis Commands

  • The capability of disabling specific Redis commands does not work on commands specific to Redis Modules.
  • The CLIENT ID command cannot guarantee incremental IDs between clients that connect to different nodes under multi proxy policies.
  • CLIENT UNBLOCK command is not supported in RS 5.4.x
  • Starting from RS 5.4.2 and after upgrading the CRDB, TYPE command for string data-type in CRDBs return "string" (OSS Redis standard).