Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
8996bf77
Commit
8996bf77
authored
Oct 31, 2011
by
antirez
Browse files
7c6da732
parent
58732c23
Changes
5
Hide whitespace changes
Inline
Side-by-side
redis.conf
View file @
8996bf77
...
...
@@ -135,6 +135,17 @@ dir ./
#
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 ###################################
# Require clients to issue AUTH <PASSWORD> before processing any other
...
...
src/config.c
View file @
8996bf77
...
...
@@ -194,6 +194,18 @@ void loadServerConfig(char *filename) {
server
.
masterhost
=
sdsnew
(
argv
[
1
]);
server
.
masterport
=
atoi
(
argv
[
2
]);
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
)
{
server
.
masterauth
=
zstrdup
(
argv
[
1
]);
}
else
if
(
!
strcasecmp
(
argv
[
0
],
"slave-serve-stale-data"
)
&&
argc
==
2
)
{
...
...
src/redis.c
View file @
8996bf77
...
...
@@ -869,6 +869,8 @@ void initServerConfig() {
server
.
zset_max_ziplist_entries
=
REDIS_ZSET_MAX_ZIPLIST_ENTRIES
;
server
.
zset_max_ziplist_value
=
REDIS_ZSET_MAX_ZIPLIST_VALUE
;
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
.
configfile
=
zstrdup
(
"nodes.conf"
);
server
.
lua_time_limit
=
REDIS_LUA_TIME_LIMIT
;
...
...
src/redis.h
View file @
8996bf77
...
...
@@ -57,6 +57,9 @@
#define REDIS_SLOWLOG_MAX_LEN 64
#define REDIS_MAX_CLIENTS 10000
#define REDIS_REPL_TIMEOUT 60
#define REDIS_REPL_PING_SLAVE_PERIOD 10
/* Hash table parameters */
#define REDIS_HT_MINFILL 10
/* Minimal hash table fill 10% */
...
...
@@ -591,6 +594,8 @@ struct redisServer {
char
*
masterauth
;
char
*
masterhost
;
int
masterport
;
int
repl_ping_slave_period
;
int
repl_timeout
;
redisClient
*
master
;
/* client that is master for this slave */
int
repl_syncio_timeout
;
/* timeout for synchronous I/O calls */
int
replstate
;
/* replication status if the instance is a slave */
...
...
src/replication.c
View file @
8996bf77
...
...
@@ -504,13 +504,10 @@ void slaveofCommand(redisClient *c) {
/* --------------------------- REPLICATION CRON ---------------------------- */
#define REDIS_REPL_TIMEOUT 60
#define REDIS_REPL_PING_SLAVE_PERIOD 10
void
replicationCron
(
void
)
{
/* Bulk transfer I/O timeout? */
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..."
);
replicationAbortSyncTransfer
();
...
...
@@ -518,7 +515,7 @@ void replicationCron(void) {
/* Timed out master when we are an already connected slave? */
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..."
);
freeClient
(
server
.
master
);
...
...
@@ -536,7 +533,7 @@ void replicationCron(void) {
* So slaves can implement an explicit timeout to masters, and will
* be able to detect a link disconnection even if the TCP connection
* 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
;
listNode
*
ln
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment