mirror of
https://github.com/fluencelabs/redis
synced 2025-03-23 11:00:50 +00:00
redis-cli: use keepalive socket option.
This should improve things in two ways: 1) Prevent timeouts caused by the execution of long commands. 2) Improve detection of real connection errors. This is mostly effective only on Linux because of the bogus default keepalive settings. In Linux we have OS-specific calls to set the keepalive interval to reasonable values.
This commit is contained in:
parent
174e51cb75
commit
3b3974410e
@ -56,6 +56,7 @@
|
||||
#define OUTPUT_STANDARD 0
|
||||
#define OUTPUT_RAW 1
|
||||
#define OUTPUT_CSV 2
|
||||
#define REDIS_CLI_KEEPALIVE_INTERVAL 15 /* seconds */
|
||||
|
||||
static redisContext *context;
|
||||
static struct config {
|
||||
@ -332,6 +333,12 @@ static int cliConnect(int force) {
|
||||
return REDIS_ERR;
|
||||
}
|
||||
|
||||
/* Set aggressive KEEP_ALIVE socket option in the Redis context socket
|
||||
* in order to prevent timeouts caused by the execution of long
|
||||
* commands. At the same time this improves the detection of real
|
||||
* errors. */
|
||||
anetKeepAlive(NULL, context->fd, REDIS_CLI_KEEPALIVE_INTERVAL);
|
||||
|
||||
/* Do AUTH and select the right DB. */
|
||||
if (cliAuth() != REDIS_OK)
|
||||
return REDIS_ERR;
|
||||
|
Loading…
x
Reference in New Issue
Block a user