The HELLO command is used for RESP3 protocol negotiation in Redis Software. Support depends on your Redis version and how your cluster is configured. This article walks through Step-by-Step Solution, highlights key failure patterns under Troubleshooting, and includes Additional Resources.
Step-by-Step Solution
Check RESP3 and HELLO Command Compatibility
-
HELLO command availability
Available starting with Redis Open Source 6.0
-
Full RESP3 support
Only available in Redis Software 7.2.4 and later
Check Redis Software Version
-
Run the following command to check the Redis Server version:
redis-server --version-
Expected output format:
Redis server v=7.2.0 sha=00000000:0 malloc=libc bits=64 build=abcdef12345678
-
Check Redis Software and Database Versions
-
Run the following command:
rladmin status extra all-
Check the following in the output:
Nodes section → Version column → Redis Software version
Databases section → Redis_Version column → Database version
-
-
Reference for version mapping:
Database versions available for each Redis Software release can be found here
Test with redis-cli
From a terminal, connect using RESP3:
redis-cli
HELLO 3If this succeeds, your backend supports RESP3.
To test RESP2 compatibility, run:
HELLO 2or simply
HELLOIf RESP3 fails, confirm whether RESP3 is enabled on the proxy or database.
If needed, retry the connection using RESP2 by setting the protocol version explicitly in the client or continuing with RESP2-compatible commands.
Client Compatibility
- Lettuce, redis-client (Ruby), and ioredis may issue HELLO by default.
- Make sure your client library supports RESP3 and is configured for the correct protocol version.
- For older server versions or databases that do not have RESP3 enabled force clients to use RESP2.
Authentication
If your Redis database requires authentication, include credentials in the HELLO call using the correct username. The default user is typically default, but this may vary depending on your RBAC setup.
HELLO 3 AUTH <username> <password>Example using the default user (if enabled):
HELLO 3 AUTH default <password>Check if RESP3 is Enabled
To verify RESP3 support in your Redis deployment, use the following methods:
At the cluster level:
rladmin info clusterLook for the resp3_value field to confirm if RESP3 is enabled by default.
At the database level:
rladmin info db <database_name or db:<id>>Check the resp3 field to see if RESP3 is enabled for the specific database.
In the Admin UI:
Go to the Configuration tab for the database.
Under RESP3 Support, confirm whether RESP3 is enabled.
For more details, refer to the official RESP compatibility reference: Enable RESP3
Proxy Layer Awareness
- Redis Software deployments using proxies (especially on Redis Enterprise 6.x) may strip or block HELLO, even if the backend supports it.
- Confirm if a proxy is in use and whether it supports RESP3 pass-through.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
ERR unknown command 'HELLO' |
Redis Enterprise version is > 7.2.4 or RESP3 is not enabled |
Upgrade to Redis Enterprise 7.2.4+ or check if RESP3 |
NOAUTH Authentication required |
Not authenticated | Use AUTH before or inline with HELLO |
| Client timeout | Proxy does not handle RESP3 | Configure client to use RESP2 |
ERR Syntax error |
Invalid HELLO command syntax | Confirm syntax correctness |
Real Redis Software Case Examples
Lettuce client failed to establish a connection with Redis Software 6.x
- The Lettuce client (Java) attempted to use
HELLOfor RESP3 negotiation. - The Lettuce client supports RESP3, but the Redis cluster does not as its version is not 7.2.4+
- Resolution: Check if protocolVersion is set for the Lettuce client or upgrade to Redis Software 7.2.4+, which supports RESP3/HELLO
Client could not connect to Redis Software 6.4.2.
redis-client gem (Ruby) defaulted to RESP3 and issued HELLO.
- The Redis Software server version did not yet support RESP3, leading to
ERR unknown command 'HELLO'. - Resolution: Upgrade Redis Software to 7.2.4+ or configure the client to fall back to RESP2.
redis-cli worked, but application clients failed due to protocol mismatch.
- Redis CLI succeeded using RESP2, but application clients (JavaScript, Python, Ruby) failed when using RESP3/HELLO.
- This mismatch misled users into thinking Redis was misbehaving when it was a version/protocol config issue.
- Resolution: Align the client protocol configuration with backend version support and upgrade paths.
0 comments
Please sign in to leave a comment.