mirror of
https://github.com/fluencelabs/redis
synced 2025-03-31 23:01:03 +00:00
7c6da73
This commit is contained in:
parent
58732c23d5
commit
8996bf7720
11
redis.conf
11
redis.conf
@ -135,6 +135,17 @@ dir ./
|
|||||||
#
|
#
|
||||||
slave-serve-stale-data yes
|
slave-serve-stale-data yes
|
||||||
|
|
||||||
|
# Slaves send PINGs to server in a predefined interval. It's possible to change
|
||||||
|
# this interval with the repl_ping_slave_period option. The default value is 10
|
||||||
|
# seconds.
|
||||||
|
#
|
||||||
|
# repl_ping_slave_period 10
|
||||||
|
|
||||||
|
# The following option sets a timeout for both Bulk transfer I/O timeout and
|
||||||
|
# master data or ping response timeout. The default value is 60 seconds.
|
||||||
|
#
|
||||||
|
# repl_timeout 60
|
||||||
|
|
||||||
################################## SECURITY ###################################
|
################################## SECURITY ###################################
|
||||||
|
|
||||||
# Require clients to issue AUTH <PASSWORD> before processing any other
|
# Require clients to issue AUTH <PASSWORD> before processing any other
|
||||||
|
12
src/config.c
12
src/config.c
@ -194,6 +194,18 @@ void loadServerConfig(char *filename) {
|
|||||||
server.masterhost = sdsnew(argv[1]);
|
server.masterhost = sdsnew(argv[1]);
|
||||||
server.masterport = atoi(argv[2]);
|
server.masterport = atoi(argv[2]);
|
||||||
server.replstate = REDIS_REPL_CONNECT;
|
server.replstate = REDIS_REPL_CONNECT;
|
||||||
|
} else if (!strcasecmp(argv[0],"repl-ping-slave-period") && argc == 2) {
|
||||||
|
server.repl_ping_slave_period = atoi(argv[1]);
|
||||||
|
if (server.repl_ping_slave_period <= 0) {
|
||||||
|
err = "repl-ping-slave-period must be 1 or greater";
|
||||||
|
goto loaderr;
|
||||||
|
}
|
||||||
|
} else if (!strcasecmp(argv[0],"repl-timeout") && argc == 2) {
|
||||||
|
server.repl_timeout = atoi(argv[1]);
|
||||||
|
if (server.repl_timeout <= 0) {
|
||||||
|
err = "repl-timeout must be 1 or greater";
|
||||||
|
goto loaderr;
|
||||||
|
}
|
||||||
} else if (!strcasecmp(argv[0],"masterauth") && argc == 2) {
|
} else if (!strcasecmp(argv[0],"masterauth") && argc == 2) {
|
||||||
server.masterauth = zstrdup(argv[1]);
|
server.masterauth = zstrdup(argv[1]);
|
||||||
} else if (!strcasecmp(argv[0],"slave-serve-stale-data") && argc == 2) {
|
} else if (!strcasecmp(argv[0],"slave-serve-stale-data") && argc == 2) {
|
||||||
|
@ -869,6 +869,8 @@ void initServerConfig() {
|
|||||||
server.zset_max_ziplist_entries = REDIS_ZSET_MAX_ZIPLIST_ENTRIES;
|
server.zset_max_ziplist_entries = REDIS_ZSET_MAX_ZIPLIST_ENTRIES;
|
||||||
server.zset_max_ziplist_value = REDIS_ZSET_MAX_ZIPLIST_VALUE;
|
server.zset_max_ziplist_value = REDIS_ZSET_MAX_ZIPLIST_VALUE;
|
||||||
server.shutdown_asap = 0;
|
server.shutdown_asap = 0;
|
||||||
|
server.repl_ping_slave_period = REDIS_REPL_PING_SLAVE_PERIOD;
|
||||||
|
server.repl_timeout = REDIS_REPL_TIMEOUT;
|
||||||
server.cluster_enabled = 0;
|
server.cluster_enabled = 0;
|
||||||
server.cluster.configfile = zstrdup("nodes.conf");
|
server.cluster.configfile = zstrdup("nodes.conf");
|
||||||
server.lua_time_limit = REDIS_LUA_TIME_LIMIT;
|
server.lua_time_limit = REDIS_LUA_TIME_LIMIT;
|
||||||
|
@ -57,6 +57,9 @@
|
|||||||
#define REDIS_SLOWLOG_MAX_LEN 64
|
#define REDIS_SLOWLOG_MAX_LEN 64
|
||||||
#define REDIS_MAX_CLIENTS 10000
|
#define REDIS_MAX_CLIENTS 10000
|
||||||
|
|
||||||
|
#define REDIS_REPL_TIMEOUT 60
|
||||||
|
#define REDIS_REPL_PING_SLAVE_PERIOD 10
|
||||||
|
|
||||||
/* Hash table parameters */
|
/* Hash table parameters */
|
||||||
#define REDIS_HT_MINFILL 10 /* Minimal hash table fill 10% */
|
#define REDIS_HT_MINFILL 10 /* Minimal hash table fill 10% */
|
||||||
|
|
||||||
@ -591,6 +594,8 @@ struct redisServer {
|
|||||||
char *masterauth;
|
char *masterauth;
|
||||||
char *masterhost;
|
char *masterhost;
|
||||||
int masterport;
|
int masterport;
|
||||||
|
int repl_ping_slave_period;
|
||||||
|
int repl_timeout;
|
||||||
redisClient *master; /* client that is master for this slave */
|
redisClient *master; /* client that is master for this slave */
|
||||||
int repl_syncio_timeout; /* timeout for synchronous I/O calls */
|
int repl_syncio_timeout; /* timeout for synchronous I/O calls */
|
||||||
int replstate; /* replication status if the instance is a slave */
|
int replstate; /* replication status if the instance is a slave */
|
||||||
|
@ -504,13 +504,10 @@ void slaveofCommand(redisClient *c) {
|
|||||||
|
|
||||||
/* --------------------------- REPLICATION CRON ---------------------------- */
|
/* --------------------------- REPLICATION CRON ---------------------------- */
|
||||||
|
|
||||||
#define REDIS_REPL_TIMEOUT 60
|
|
||||||
#define REDIS_REPL_PING_SLAVE_PERIOD 10
|
|
||||||
|
|
||||||
void replicationCron(void) {
|
void replicationCron(void) {
|
||||||
/* Bulk transfer I/O timeout? */
|
/* Bulk transfer I/O timeout? */
|
||||||
if (server.masterhost && server.replstate == REDIS_REPL_TRANSFER &&
|
if (server.masterhost && server.replstate == REDIS_REPL_TRANSFER &&
|
||||||
(time(NULL)-server.repl_transfer_lastio) > REDIS_REPL_TIMEOUT)
|
(time(NULL)-server.repl_transfer_lastio) > server.repl_timeout)
|
||||||
{
|
{
|
||||||
redisLog(REDIS_WARNING,"Timeout receiving bulk data from MASTER...");
|
redisLog(REDIS_WARNING,"Timeout receiving bulk data from MASTER...");
|
||||||
replicationAbortSyncTransfer();
|
replicationAbortSyncTransfer();
|
||||||
@ -518,7 +515,7 @@ void replicationCron(void) {
|
|||||||
|
|
||||||
/* Timed out master when we are an already connected slave? */
|
/* Timed out master when we are an already connected slave? */
|
||||||
if (server.masterhost && server.replstate == REDIS_REPL_CONNECTED &&
|
if (server.masterhost && server.replstate == REDIS_REPL_CONNECTED &&
|
||||||
(time(NULL)-server.master->lastinteraction) > REDIS_REPL_TIMEOUT)
|
(time(NULL)-server.master->lastinteraction) > server.repl_timeout)
|
||||||
{
|
{
|
||||||
redisLog(REDIS_WARNING,"MASTER time out: no data nor PING received...");
|
redisLog(REDIS_WARNING,"MASTER time out: no data nor PING received...");
|
||||||
freeClient(server.master);
|
freeClient(server.master);
|
||||||
@ -536,7 +533,7 @@ void replicationCron(void) {
|
|||||||
* So slaves can implement an explicit timeout to masters, and will
|
* So slaves can implement an explicit timeout to masters, and will
|
||||||
* be able to detect a link disconnection even if the TCP connection
|
* be able to detect a link disconnection even if the TCP connection
|
||||||
* will not actually go down. */
|
* will not actually go down. */
|
||||||
if (!(server.cronloops % (REDIS_REPL_PING_SLAVE_PERIOD*10))) {
|
if (!(server.cronloops % (server.repl_ping_slave_period*10))) {
|
||||||
listIter li;
|
listIter li;
|
||||||
listNode *ln;
|
listNode *ln;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user