Skip to content

Commit

Permalink
Allow by/get of sort(ro) in cluster mode. (#2611)
Browse files Browse the repository at this point in the history
  • Loading branch information
CharlesChen888 committed Mar 1, 2024
1 parent 438e8b1 commit ee795e4
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions commands/sort.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,11 @@ SORT mylist BY weight_* GET object_* GET #

## Restrictions for using external keys

When enabling `Redis cluster-mode` there is no way to guarantee the existence of the external keys on the node which the command is processed on.
In this case, any use of `GET` or `BY` which reference external key pattern will cause the command to fail with an error.
Before 8.0, when enabling `Redis cluster-mode` there is no way to guarantee the existence of the external keys on the node which the command is processed on. In this case, any use of `GET` or `BY` which reference external key pattern will cause the command to fail with an error.

Starting from 8.0, pattern with hash tag can be mapped to a slot, and so in `Redis cluster-mode`, the use of `BY` or `GET` is allowed when pattern contains hash tag and implies a specific slot which the key is also in, which means any key matching this pattern must be in the same slot as the key, and therefore in the same node. For example, in cluster mode, `{mylist}weight_*` is acceptable as a pattern when sorting `mylist`, while pattern `{abc}weight_*` will be denied, causing the command to fail with an error.

To use pattern with hash tag, see https://redis.io/docs/reference/cluster-spec/#hash-tags for more information.

Starting from Redis 7.0, any use of `GET` or `BY` which reference external key pattern will only be allowed in case the current user running the command has full key read permissions.
Full key read permissions can be set for the user by, for example, specifying `'%R~*'` or `'~*` with the relevant command access rules.
Expand Down

0 comments on commit ee795e4

Please sign in to comment.