diff --git a/redis/commands/core.py b/redis/commands/core.py index 5fad0b65f1..4285ad9c62 100644 --- a/redis/commands/core.py +++ b/redis/commands/core.py @@ -3919,6 +3919,9 @@ def command_info(self): def command_count(self): return self.execute_command('COMMAND COUNT') + def command_getkeys(self, *args): + return self.execute_command('COMMAND GETKEYS', *args) + def command(self): return self.execute_command('COMMAND') diff --git a/tests/test_commands.py b/tests/test_commands.py index dbd04429b4..0950cd5002 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -3671,6 +3671,15 @@ def test_command_count(self, r): assert isinstance(res, int) assert res >= 100 + @skip_if_server_version_lt('2.8.13') + def test_command_getkeys(self, r): + res = r.command_getkeys('MSET', 'a', 'b', 'c', 'd', 'e', 'f') + assert res == [b'a', b'c', b'e'] + res = r.command_getkeys('EVAL', '"not consulted"', + '3', 'key1', 'key2', 'key3', + 'arg1', 'arg2', 'arg3', 'argN') + assert res == [b'key1', b'key2', b'key3'] + @skip_if_server_version_lt('2.8.13') def test_command(self, r): res = r.command()