redis-cli命令重启redis服务器
Redis-cli command to restart the redis server
我从 redis-cli 使用 SHUTDOWN 终止了 redis 服务器。现在提示显示 'not connected>'.
我发现重启服务器的唯一方法是退出 redis-cli 提示符,然后重启 redis 服务。
我的问题是,有没有办法在不退出 redis-cli 提示的情况下使用任何 redis 命令从 redis-cli 提示重新启动服务器?
虽然您不必退出 cli,但服务器一旦关闭就无法从中重新启动。
我同意 Itamar Haber 的回答,我会揭开细节
服务器重新启动后,如果您在此'not connected>'中键入任何命令,如果发送命令失败,redis-cli 将再次尝试连接。
while (1) {
config.cluster_reissue_command = 0;
if (cliSendCommand(argc,argv,repeat) != REDIS_OK) {
cliConnect(1);//try to connect redis server if sendcommand failed
if (cliSendCommand(argc,argv,repeat) != REDIS_OK) {//after try to connect,send commend again
cliPrintContextError();
return REDIS_ERR;
}
}
}
redis-server重启成功后,会监听socket事件,如果socket连接发生,server会在此处接受连接
void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask) {
......some code.......
while(max--) {
cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport);//accept connect
if (cfd == ANET_ERR) {
if (errno != EWOULDBLOCK)
serverLog(LL_WARNING,
"Accepting client connection: %s", server.neterr);
return;
}
serverLog(LL_VERBOSE,"Accepted %s:%d", cip, cport);
acceptCommonHandler(cfd,0,cip);
}
}
我从 redis-cli 使用 SHUTDOWN 终止了 redis 服务器。现在提示显示 'not connected>'.
我发现重启服务器的唯一方法是退出 redis-cli 提示符,然后重启 redis 服务。
我的问题是,有没有办法在不退出 redis-cli 提示的情况下使用任何 redis 命令从 redis-cli 提示重新启动服务器?
虽然您不必退出 cli,但服务器一旦关闭就无法从中重新启动。
我同意 Itamar Haber 的回答,我会揭开细节
服务器重新启动后,如果您在此'not connected>'中键入任何命令,如果发送命令失败,redis-cli 将再次尝试连接。
while (1) {
config.cluster_reissue_command = 0;
if (cliSendCommand(argc,argv,repeat) != REDIS_OK) {
cliConnect(1);//try to connect redis server if sendcommand failed
if (cliSendCommand(argc,argv,repeat) != REDIS_OK) {//after try to connect,send commend again
cliPrintContextError();
return REDIS_ERR;
}
}
}
redis-server重启成功后,会监听socket事件,如果socket连接发生,server会在此处接受连接
void acceptTcpHandler(aeEventLoop *el, int fd, void *privdata, int mask) {
......some code.......
while(max--) {
cfd = anetTcpAccept(server.neterr, fd, cip, sizeof(cip), &cport);//accept connect
if (cfd == ANET_ERR) {
if (errno != EWOULDBLOCK)
serverLog(LL_WARNING,
"Accepting client connection: %s", server.neterr);
return;
}
serverLog(LL_VERBOSE,"Accepted %s:%d", cip, cport);
acceptCommonHandler(cfd,0,cip);
}
}