Skip to content

Commit ee795e4

Browse files
Allow by/get of sort(ro) in cluster mode. (#2611)
1 parent 438e8b1 commit ee795e4

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

commands/sort.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,11 @@ SORT mylist BY weight_* GET object_* GET #
105105

106106
## Restrictions for using external keys
107107

108-
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.
109-
In this case, any use of `GET` or `BY` which reference external key pattern will cause the command to fail with an error.
108+
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.
109+
110+
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.
111+
112+
To use pattern with hash tag, see https://redis.io/docs/reference/cluster-spec/#hash-tags for more information.
110113

111114
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.
112115
Full key read permissions can be set for the user by, for example, specifying `'%R~*'` or `'~*` with the relevant command access rules.

0 commit comments

Comments
 (0)