RedisClient::execCommand* incorrectly splits EVAL arguments
Author: tanglong3bfCreated Sep 7, 2026Updated Sep 7, 2026
When executing the EVAL command via redisClient->execCommand*, the arguments are incorrectly split.
C++ code
string command = "EVAL \"redis.call('SET', KEYS[1], 1)\" 1 aaa";
redisClient_->execCommandAsync(
[](const drogon::nosql::RedisResult &result) {
LOG_INFO << result.getStringForDisplaying();
},
[](const drogon::nosql::RedisException &e) {
LOG_ERROR << e.what(); // Output: ERR value is not an integer or out of range
},
command);Redis Monitor Output (Incorrect):**
1788764064.250441 [0 172.17.0.1:52148] "EVAL" "\"redis.call('SET'," "KEYS[1]," "1)\"" "1" "aaa"Expected Monitor Output (Correct):**
1788764160.024534 [0 172.17.0.1:37362] "EVAL" "redis.call('SET', KEYS[1], 1)" "1" "aaa"
1788764160.029867 [0 lua] "SET" "aaa" "1"Source: drogonframework/drogon