@rpcbase/server 0.67.0 → 0.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin.js +12 -9
- package/cli/build_server.js +1 -3
- package/cli/run_docker.js +6 -38
- package/cli/run_native.js +74 -28
- package/cli/start_server.js +8 -9
- package/infrastructure/mongodb/mongod.conf +9 -0
- package/infrastructure/redis/redis.conf +575 -176
- package/package.json +3 -3
- package/cli/native/get_commands.js +0 -3
|
@@ -32,8 +32,17 @@
|
|
|
32
32
|
# If instead you are interested in using includes to override configuration
|
|
33
33
|
# options, it is better to use include as the last line.
|
|
34
34
|
#
|
|
35
|
+
# Included paths may contain wildcards. All files matching the wildcards will
|
|
36
|
+
# be included in alphabetical order.
|
|
37
|
+
# Note that if an include path contains a wildcards but no files match it when
|
|
38
|
+
# the server is started, the include statement will be ignored and no error will
|
|
39
|
+
# be emitted. It is safe, therefore, to include wildcard files from empty
|
|
40
|
+
# directories.
|
|
41
|
+
#
|
|
35
42
|
# include /path/to/local.conf
|
|
36
43
|
# include /path/to/other.conf
|
|
44
|
+
# include /path/to/fragments/*.conf
|
|
45
|
+
#
|
|
37
46
|
|
|
38
47
|
################################## MODULES #####################################
|
|
39
48
|
|
|
@@ -49,46 +58,84 @@
|
|
|
49
58
|
# for connections from all available network interfaces on the host machine.
|
|
50
59
|
# It is possible to listen to just one or multiple selected interfaces using
|
|
51
60
|
# the "bind" configuration directive, followed by one or more IP addresses.
|
|
61
|
+
# Each address can be prefixed by "-", which means that redis will not fail to
|
|
62
|
+
# start if the address is not available. Being not available only refers to
|
|
63
|
+
# addresses that does not correspond to any network interface. Addresses that
|
|
64
|
+
# are already in use will always fail, and unsupported protocols will always BE
|
|
65
|
+
# silently skipped.
|
|
52
66
|
#
|
|
53
67
|
# Examples:
|
|
54
68
|
#
|
|
55
|
-
# bind 192.168.1.100 10.0.0.1
|
|
56
|
-
# bind 127.0.0.1 ::1
|
|
69
|
+
# bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses
|
|
70
|
+
# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6
|
|
71
|
+
# bind * -::* # like the default, all available interfaces
|
|
57
72
|
#
|
|
58
73
|
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
|
|
59
74
|
# internet, binding to all the interfaces is dangerous and will expose the
|
|
60
75
|
# instance to everybody on the internet. So by default we uncomment the
|
|
61
76
|
# following bind directive, that will force Redis to listen only on the
|
|
62
|
-
# IPv4 loopback interface
|
|
63
|
-
# accept client connections from the same host that it is
|
|
77
|
+
# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis
|
|
78
|
+
# will only be able to accept client connections from the same host that it is
|
|
79
|
+
# running on).
|
|
64
80
|
#
|
|
65
81
|
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
|
|
66
|
-
#
|
|
82
|
+
# COMMENT OUT THE FOLLOWING LINE.
|
|
83
|
+
#
|
|
84
|
+
# You will also need to set a password unless you explicitly disable protected
|
|
85
|
+
# mode.
|
|
67
86
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
68
|
-
bind
|
|
87
|
+
bind 127.0.0.1 -::1
|
|
69
88
|
|
|
70
|
-
#
|
|
71
|
-
#
|
|
89
|
+
# By default, outgoing connections (from replica to master, from Sentinel to
|
|
90
|
+
# instances, cluster bus, etc.) are not bound to a specific local address. In
|
|
91
|
+
# most cases, this means the operating system will handle that based on routing
|
|
92
|
+
# and the interface through which the connection goes out.
|
|
72
93
|
#
|
|
73
|
-
#
|
|
94
|
+
# Using bind-source-addr it is possible to configure a specific address to bind
|
|
95
|
+
# to, which may also affect how the connection gets routed.
|
|
74
96
|
#
|
|
75
|
-
#
|
|
76
|
-
# "bind" directive.
|
|
77
|
-
# 2) No password is configured.
|
|
97
|
+
# Example:
|
|
78
98
|
#
|
|
79
|
-
#
|
|
80
|
-
|
|
81
|
-
#
|
|
99
|
+
# bind-source-addr 10.0.0.1
|
|
100
|
+
|
|
101
|
+
# Protected mode is a layer of security protection, in order to avoid that
|
|
102
|
+
# Redis instances left open on the internet are accessed and exploited.
|
|
103
|
+
#
|
|
104
|
+
# When protected mode is on and the default user has no password, the server
|
|
105
|
+
# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
|
|
106
|
+
# (::1) or Unix domain sockets.
|
|
82
107
|
#
|
|
83
108
|
# By default protected mode is enabled. You should disable it only if
|
|
84
109
|
# you are sure you want clients from other hosts to connect to Redis
|
|
85
|
-
# even if no authentication is configured
|
|
86
|
-
|
|
87
|
-
|
|
110
|
+
# even if no authentication is configured.
|
|
111
|
+
protected-mode yes
|
|
112
|
+
|
|
113
|
+
# Redis uses default hardened security configuration directives to reduce the
|
|
114
|
+
# attack surface on innocent users. Therefore, several sensitive configuration
|
|
115
|
+
# directives are immutable, and some potentially-dangerous commands are blocked.
|
|
116
|
+
#
|
|
117
|
+
# Configuration directives that control files that Redis writes to (e.g., 'dir'
|
|
118
|
+
# and 'dbfilename') and that aren't usually modified during runtime
|
|
119
|
+
# are protected by making them immutable.
|
|
120
|
+
#
|
|
121
|
+
# Commands that can increase the attack surface of Redis and that aren't usually
|
|
122
|
+
# called by users are blocked by default.
|
|
123
|
+
#
|
|
124
|
+
# These can be exposed to either all connections or just local ones by setting
|
|
125
|
+
# each of the configs listed below to either of these values:
|
|
126
|
+
#
|
|
127
|
+
# no - Block for any connection (remain immutable)
|
|
128
|
+
# yes - Allow for any connection (no protection)
|
|
129
|
+
# local - Allow only for local connections. Ones originating from the
|
|
130
|
+
# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
|
|
131
|
+
#
|
|
132
|
+
# enable-protected-configs no
|
|
133
|
+
# enable-debug-command no
|
|
134
|
+
# enable-module-command no
|
|
88
135
|
|
|
89
136
|
# Accept connections on the specified port, default is 6379 (IANA #815344).
|
|
90
137
|
# If port 0 is specified Redis will not listen on a TCP socket.
|
|
91
|
-
|
|
138
|
+
port 6379
|
|
92
139
|
|
|
93
140
|
# TCP listen() backlog.
|
|
94
141
|
#
|
|
@@ -105,7 +152,7 @@ tcp-backlog 511
|
|
|
105
152
|
# incoming connections. There is no default, so Redis will not listen
|
|
106
153
|
# on a unix socket when not specified.
|
|
107
154
|
#
|
|
108
|
-
# unixsocket /
|
|
155
|
+
# unixsocket /run/redis.sock
|
|
109
156
|
# unixsocketperm 700
|
|
110
157
|
|
|
111
158
|
# Close the connection after a client is idle for N seconds (0 to disable)
|
|
@@ -128,6 +175,16 @@ timeout 0
|
|
|
128
175
|
# Redis default starting with Redis 3.2.1.
|
|
129
176
|
tcp-keepalive 300
|
|
130
177
|
|
|
178
|
+
# Apply OS-specific mechanism to mark the listening socket with the specified
|
|
179
|
+
# ID, to support advanced routing and filtering capabilities.
|
|
180
|
+
#
|
|
181
|
+
# On Linux, the ID represents a connection mark.
|
|
182
|
+
# On FreeBSD, the ID represents a socket cookie ID.
|
|
183
|
+
# On OpenBSD, the ID represents a route table ID.
|
|
184
|
+
#
|
|
185
|
+
# The default value is 0, which implies no marking is required.
|
|
186
|
+
# socket-mark-id 0
|
|
187
|
+
|
|
131
188
|
################################# TLS/SSL #####################################
|
|
132
189
|
|
|
133
190
|
# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
|
|
@@ -143,8 +200,32 @@ tcp-keepalive 300
|
|
|
143
200
|
#
|
|
144
201
|
# tls-cert-file redis.crt
|
|
145
202
|
# tls-key-file redis.key
|
|
203
|
+
#
|
|
204
|
+
# If the key file is encrypted using a passphrase, it can be included here
|
|
205
|
+
# as well.
|
|
206
|
+
#
|
|
207
|
+
# tls-key-file-pass secret
|
|
146
208
|
|
|
147
|
-
#
|
|
209
|
+
# Normally Redis uses the same certificate for both server functions (accepting
|
|
210
|
+
# connections) and client functions (replicating from a master, establishing
|
|
211
|
+
# cluster bus connections, etc.).
|
|
212
|
+
#
|
|
213
|
+
# Sometimes certificates are issued with attributes that designate them as
|
|
214
|
+
# client-only or server-only certificates. In that case it may be desired to use
|
|
215
|
+
# different certificates for incoming (server) and outgoing (client)
|
|
216
|
+
# connections. To do that, use the following directives:
|
|
217
|
+
#
|
|
218
|
+
# tls-client-cert-file client.crt
|
|
219
|
+
# tls-client-key-file client.key
|
|
220
|
+
#
|
|
221
|
+
# If the key file is encrypted using a passphrase, it can be included here
|
|
222
|
+
# as well.
|
|
223
|
+
#
|
|
224
|
+
# tls-client-key-file-pass secret
|
|
225
|
+
|
|
226
|
+
# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange,
|
|
227
|
+
# required by older versions of OpenSSL (<3.0). Newer versions do not require
|
|
228
|
+
# this configuration and recommend against it.
|
|
148
229
|
#
|
|
149
230
|
# tls-dh-params-file redis.dh
|
|
150
231
|
|
|
@@ -177,9 +258,12 @@ tcp-keepalive 300
|
|
|
177
258
|
#
|
|
178
259
|
# tls-cluster yes
|
|
179
260
|
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
261
|
+
# By default, only TLSv1.2 and TLSv1.3 are enabled and it is highly recommended
|
|
262
|
+
# that older formally deprecated versions are kept disabled to reduce the attack surface.
|
|
263
|
+
# You can explicitly specify TLS versions to support.
|
|
264
|
+
# Allowed values are case insensitive and include "TLSv1", "TLSv1.1", "TLSv1.2",
|
|
265
|
+
# "TLSv1.3" (OpenSSL >= 1.1.1) or any combination.
|
|
266
|
+
# To enable only TLSv1.2 and TLSv1.3, use:
|
|
183
267
|
#
|
|
184
268
|
# tls-protocols "TLSv1.2 TLSv1.3"
|
|
185
269
|
|
|
@@ -221,6 +305,7 @@ tcp-keepalive 300
|
|
|
221
305
|
|
|
222
306
|
# By default Redis does not run as a daemon. Use 'yes' if you need it.
|
|
223
307
|
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
|
|
308
|
+
# When Redis is supervised by upstart or systemd, this parameter has no impact.
|
|
224
309
|
daemonize no
|
|
225
310
|
|
|
226
311
|
# If you run Redis from upstart or systemd, Redis can interact with your
|
|
@@ -229,11 +314,17 @@ daemonize no
|
|
|
229
314
|
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
|
|
230
315
|
# requires "expect stop" in your upstart job config
|
|
231
316
|
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
|
|
317
|
+
# on startup, and updating Redis status on a regular
|
|
318
|
+
# basis.
|
|
232
319
|
# supervised auto - detect upstart or systemd method based on
|
|
233
320
|
# UPSTART_JOB or NOTIFY_SOCKET environment variables
|
|
234
321
|
# Note: these supervision methods only signal "process is ready."
|
|
235
322
|
# They do not enable continuous pings back to your supervisor.
|
|
236
|
-
|
|
323
|
+
#
|
|
324
|
+
# The default is "no". To run under upstart/systemd, you can simply uncomment
|
|
325
|
+
# the line below:
|
|
326
|
+
#
|
|
327
|
+
# supervised auto
|
|
237
328
|
|
|
238
329
|
# If a pid file is specified, Redis writes it where specified at startup
|
|
239
330
|
# and removes it at exit.
|
|
@@ -244,6 +335,9 @@ supervised no
|
|
|
244
335
|
#
|
|
245
336
|
# Creating a pid file is best effort: if Redis is not able to create it
|
|
246
337
|
# nothing bad happens, the server will start and run normally.
|
|
338
|
+
#
|
|
339
|
+
# Note that on modern Linux systems "/run/redis.pid" is more conforming
|
|
340
|
+
# and should be used instead.
|
|
247
341
|
pidfile /var/run/redis_6379.pid
|
|
248
342
|
|
|
249
343
|
# Specify the server verbosity level.
|
|
@@ -257,7 +351,7 @@ loglevel notice
|
|
|
257
351
|
# Specify the log file name. Also the empty string can be used to force
|
|
258
352
|
# Redis to log on the standard output. Note that if you use standard
|
|
259
353
|
# output for logging but daemonize, logs will be sent to /dev/null
|
|
260
|
-
logfile "
|
|
354
|
+
logfile ""
|
|
261
355
|
|
|
262
356
|
# To enable logging to the system logger, just set 'syslog-enabled' to yes,
|
|
263
357
|
# and optionally update the other syslog parameters to suit your needs.
|
|
@@ -269,44 +363,74 @@ logfile "/var/log/redis/logs.txt"
|
|
|
269
363
|
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
|
|
270
364
|
# syslog-facility local0
|
|
271
365
|
|
|
366
|
+
# To disable the built in crash log, which will possibly produce cleaner core
|
|
367
|
+
# dumps when they are needed, uncomment the following:
|
|
368
|
+
#
|
|
369
|
+
# crash-log-enabled no
|
|
370
|
+
|
|
371
|
+
# To disable the fast memory check that's run as part of the crash log, which
|
|
372
|
+
# will possibly let redis terminate sooner, uncomment the following:
|
|
373
|
+
#
|
|
374
|
+
# crash-memcheck-enabled no
|
|
375
|
+
|
|
272
376
|
# Set the number of databases. The default database is DB 0, you can select
|
|
273
377
|
# a different one on a per-connection basis using SELECT <dbid> where
|
|
274
378
|
# dbid is a number between 0 and 'databases'-1
|
|
275
379
|
databases 16
|
|
276
380
|
|
|
277
381
|
# By default Redis shows an ASCII art logo only when started to log to the
|
|
278
|
-
# standard output and if the standard output is a TTY
|
|
279
|
-
# that normally a logo is displayed only in
|
|
382
|
+
# standard output and if the standard output is a TTY and syslog logging is
|
|
383
|
+
# disabled. Basically this means that normally a logo is displayed only in
|
|
384
|
+
# interactive sessions.
|
|
280
385
|
#
|
|
281
386
|
# However it is possible to force the pre-4.0 behavior and always show a
|
|
282
387
|
# ASCII art logo in startup logs by setting the following option to yes.
|
|
283
|
-
always-show-logo
|
|
388
|
+
always-show-logo no
|
|
389
|
+
|
|
390
|
+
# By default, Redis modifies the process title (as seen in 'top' and 'ps') to
|
|
391
|
+
# provide some runtime information. It is possible to disable this and leave
|
|
392
|
+
# the process name as executed by setting the following to no.
|
|
393
|
+
set-proc-title yes
|
|
394
|
+
|
|
395
|
+
# When changing the process title, Redis uses the following template to construct
|
|
396
|
+
# the modified title.
|
|
397
|
+
#
|
|
398
|
+
# Template variables are specified in curly brackets. The following variables are
|
|
399
|
+
# supported:
|
|
400
|
+
#
|
|
401
|
+
# {title} Name of process as executed if parent, or type of child process.
|
|
402
|
+
# {listen-addr} Bind address or '*' followed by TCP or TLS port listening on, or
|
|
403
|
+
# Unix socket if only that's available.
|
|
404
|
+
# {server-mode} Special mode, i.e. "[sentinel]" or "[cluster]".
|
|
405
|
+
# {port} TCP port listening on, or 0.
|
|
406
|
+
# {tls-port} TLS port listening on, or 0.
|
|
407
|
+
# {unixsocket} Unix domain socket listening on, or "".
|
|
408
|
+
# {config-file} Name of configuration file used.
|
|
409
|
+
#
|
|
410
|
+
proc-title-template "{title} {listen-addr} {server-mode}"
|
|
284
411
|
|
|
285
412
|
################################ SNAPSHOTTING ################################
|
|
413
|
+
|
|
414
|
+
# Save the DB to disk.
|
|
286
415
|
#
|
|
287
|
-
#
|
|
416
|
+
# save <seconds> <changes> [<seconds> <changes> ...]
|
|
288
417
|
#
|
|
289
|
-
#
|
|
418
|
+
# Redis will save the DB if the given number of seconds elapsed and it
|
|
419
|
+
# surpassed the given number of write operations against the DB.
|
|
290
420
|
#
|
|
291
|
-
#
|
|
292
|
-
#
|
|
421
|
+
# Snapshotting can be completely disabled with a single empty string argument
|
|
422
|
+
# as in following example:
|
|
293
423
|
#
|
|
294
|
-
#
|
|
295
|
-
# after 900 sec (15 min) if at least 1 key changed
|
|
296
|
-
# after 300 sec (5 min) if at least 10 keys changed
|
|
297
|
-
# after 60 sec if at least 10000 keys changed
|
|
424
|
+
# save ""
|
|
298
425
|
#
|
|
299
|
-
#
|
|
426
|
+
# Unless specified otherwise, by default Redis will save the DB:
|
|
427
|
+
# * After 3600 seconds (an hour) if at least 1 change was performed
|
|
428
|
+
# * After 300 seconds (5 minutes) if at least 100 changes were performed
|
|
429
|
+
# * After 60 seconds if at least 10000 changes were performed
|
|
300
430
|
#
|
|
301
|
-
#
|
|
302
|
-
# points by adding a save directive with a single empty string argument
|
|
303
|
-
# like in the following example:
|
|
431
|
+
# You can set these explicitly by uncommenting the following line.
|
|
304
432
|
#
|
|
305
|
-
#
|
|
306
|
-
|
|
307
|
-
save 900 1
|
|
308
|
-
save 300 10
|
|
309
|
-
save 60 10000
|
|
433
|
+
# save 3600 1 300 100 60 10000
|
|
310
434
|
|
|
311
435
|
# By default Redis will stop accepting writes if RDB snapshots are enabled
|
|
312
436
|
# (at least one save point) and the latest background save failed.
|
|
@@ -338,6 +462,21 @@ rdbcompression yes
|
|
|
338
462
|
# tell the loading code to skip the check.
|
|
339
463
|
rdbchecksum yes
|
|
340
464
|
|
|
465
|
+
# Enables or disables full sanitization checks for ziplist and listpack etc when
|
|
466
|
+
# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
|
|
467
|
+
# crash later on while processing commands.
|
|
468
|
+
# Options:
|
|
469
|
+
# no - Never perform full sanitization
|
|
470
|
+
# yes - Always perform full sanitization
|
|
471
|
+
# clients - Perform full sanitization only for user connections.
|
|
472
|
+
# Excludes: RDB files, RESTORE commands received from the master
|
|
473
|
+
# connection, and client connections which have the
|
|
474
|
+
# skip-sanitize-payload ACL flag.
|
|
475
|
+
# The default should be 'clients' but since it currently affects cluster
|
|
476
|
+
# resharding via MIGRATE, it is temporarily set to 'no' by default.
|
|
477
|
+
#
|
|
478
|
+
# sanitize-dump-payload no
|
|
479
|
+
|
|
341
480
|
# The filename where to dump the DB
|
|
342
481
|
dbfilename dump.rdb
|
|
343
482
|
|
|
@@ -412,9 +551,10 @@ dir ./
|
|
|
412
551
|
# still reply to client requests, possibly with out of date data, or the
|
|
413
552
|
# data set may just be empty if this is the first synchronization.
|
|
414
553
|
#
|
|
415
|
-
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with
|
|
416
|
-
#
|
|
417
|
-
#
|
|
554
|
+
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
|
|
555
|
+
# "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
|
|
556
|
+
# to all data access commands, excluding commands such as:
|
|
557
|
+
# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
|
|
418
558
|
# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
|
|
419
559
|
# HOST and LATENCY.
|
|
420
560
|
#
|
|
@@ -463,7 +603,7 @@ replica-read-only yes
|
|
|
463
603
|
#
|
|
464
604
|
# With slow disks and fast (large bandwidth) networks, diskless replication
|
|
465
605
|
# works better.
|
|
466
|
-
repl-diskless-sync
|
|
606
|
+
repl-diskless-sync yes
|
|
467
607
|
|
|
468
608
|
# When diskless replication is enabled, it is possible to configure the delay
|
|
469
609
|
# the server waits in order to spawn the child that transfers the RDB via socket
|
|
@@ -477,12 +617,18 @@ repl-diskless-sync no
|
|
|
477
617
|
# it entirely just set it to 0 seconds and the transfer will start ASAP.
|
|
478
618
|
repl-diskless-sync-delay 5
|
|
479
619
|
|
|
620
|
+
# When diskless replication is enabled with a delay, it is possible to let
|
|
621
|
+
# the replication start before the maximum delay is reached if the maximum
|
|
622
|
+
# number of replicas expected have connected. Default of 0 means that the
|
|
623
|
+
# maximum is not defined and Redis will wait the full delay.
|
|
624
|
+
repl-diskless-sync-max-replicas 0
|
|
625
|
+
|
|
480
626
|
# -----------------------------------------------------------------------------
|
|
481
627
|
# WARNING: RDB diskless load is experimental. Since in this setup the replica
|
|
482
628
|
# does not immediately store an RDB on disk, it may cause data loss during
|
|
483
629
|
# failovers. RDB diskless load + Redis modules not handling I/O reads may also
|
|
484
630
|
# cause Redis to abort in case of I/O errors during the initial synchronization
|
|
485
|
-
# stage with the master. Use only if
|
|
631
|
+
# stage with the master. Use only if you know what you are doing.
|
|
486
632
|
# -----------------------------------------------------------------------------
|
|
487
633
|
#
|
|
488
634
|
# Replica can load the RDB it reads from the replication link directly from the
|
|
@@ -491,19 +637,23 @@ repl-diskless-sync-delay 5
|
|
|
491
637
|
#
|
|
492
638
|
# In many cases the disk is slower than the network, and storing and loading
|
|
493
639
|
# the RDB file may increase replication time (and even increase the master's
|
|
494
|
-
# Copy on Write memory and
|
|
640
|
+
# Copy on Write memory and replica buffers).
|
|
495
641
|
# However, parsing the RDB file directly from the socket may mean that we have
|
|
496
642
|
# to flush the contents of the current database before the full rdb was
|
|
497
643
|
# received. For this reason we have the following options:
|
|
498
644
|
#
|
|
499
645
|
# "disabled" - Don't use diskless load (store the rdb file to the disk first)
|
|
500
646
|
# "on-empty-db" - Use diskless load only when it is completely safe.
|
|
501
|
-
# "swapdb" - Keep
|
|
502
|
-
#
|
|
503
|
-
#
|
|
647
|
+
# "swapdb" - Keep current db contents in RAM while parsing the data directly
|
|
648
|
+
# from the socket. Replicas in this mode can keep serving current
|
|
649
|
+
# data set while replication is in progress, except for cases where
|
|
650
|
+
# they can't recognize master as having a data set from same
|
|
651
|
+
# replication history.
|
|
652
|
+
# Note that this requires sufficient memory, if you don't have it,
|
|
653
|
+
# you risk an OOM kill.
|
|
504
654
|
repl-diskless-load disabled
|
|
505
655
|
|
|
506
|
-
#
|
|
656
|
+
# Master send PINGs to its replicas in a predefined interval. It's possible to
|
|
507
657
|
# change this interval with the repl_ping_replica_period option. The default
|
|
508
658
|
# value is 10 seconds.
|
|
509
659
|
#
|
|
@@ -578,6 +728,43 @@ repl-disable-tcp-nodelay no
|
|
|
578
728
|
# By default the priority is 100.
|
|
579
729
|
replica-priority 100
|
|
580
730
|
|
|
731
|
+
# The propagation error behavior controls how Redis will behave when it is
|
|
732
|
+
# unable to handle a command being processed in the replication stream from a master
|
|
733
|
+
# or processed while reading from an AOF file. Errors that occur during propagation
|
|
734
|
+
# are unexpected, and can cause data inconsistency. However, there are edge cases
|
|
735
|
+
# in earlier versions of Redis where it was possible for the server to replicate or persist
|
|
736
|
+
# commands that would fail on future versions. For this reason the default behavior
|
|
737
|
+
# is to ignore such errors and continue processing commands.
|
|
738
|
+
#
|
|
739
|
+
# If an application wants to ensure there is no data divergence, this configuration
|
|
740
|
+
# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
|
|
741
|
+
# to only panic when a replica encounters an error on the replication stream. One of
|
|
742
|
+
# these two panic values will become the default value in the future once there are
|
|
743
|
+
# sufficient safety mechanisms in place to prevent false positive crashes.
|
|
744
|
+
#
|
|
745
|
+
# propagation-error-behavior ignore
|
|
746
|
+
|
|
747
|
+
# Replica ignore disk write errors controls the behavior of a replica when it is
|
|
748
|
+
# unable to persist a write command received from its master to disk. By default,
|
|
749
|
+
# this configuration is set to 'no' and will crash the replica in this condition.
|
|
750
|
+
# It is not recommended to change this default, however in order to be compatible
|
|
751
|
+
# with older versions of Redis this config can be toggled to 'yes' which will just
|
|
752
|
+
# log a warning and execute the write command it got from the master.
|
|
753
|
+
#
|
|
754
|
+
# replica-ignore-disk-write-errors no
|
|
755
|
+
|
|
756
|
+
# -----------------------------------------------------------------------------
|
|
757
|
+
# By default, Redis Sentinel includes all replicas in its reports. A replica
|
|
758
|
+
# can be excluded from Redis Sentinel's announcements. An unannounced replica
|
|
759
|
+
# will be ignored by the 'sentinel replicas <master>' command and won't be
|
|
760
|
+
# exposed to Redis Sentinel's clients.
|
|
761
|
+
#
|
|
762
|
+
# This option does not change the behavior of replica-priority. Even with
|
|
763
|
+
# replica-announced set to 'no', the replica can be promoted to master. To
|
|
764
|
+
# prevent this behavior, set replica-priority to 0.
|
|
765
|
+
#
|
|
766
|
+
# replica-announced yes
|
|
767
|
+
|
|
581
768
|
# It is possible for a master to stop accepting writes if there are less than
|
|
582
769
|
# N replicas connected, having a lag less or equal than M seconds.
|
|
583
770
|
#
|
|
@@ -633,7 +820,7 @@ replica-priority 100
|
|
|
633
820
|
|
|
634
821
|
# Redis implements server assisted support for client side caching of values.
|
|
635
822
|
# This is implemented using an invalidation table that remembers, using
|
|
636
|
-
#
|
|
823
|
+
# a radix key indexed by key name, what clients have which keys. In turn
|
|
637
824
|
# this is used in order to send invalidation messages to clients. Please
|
|
638
825
|
# check this page to understand more about the feature:
|
|
639
826
|
#
|
|
@@ -697,8 +884,12 @@ replica-priority 100
|
|
|
697
884
|
# off Disable the user: it's no longer possible to authenticate
|
|
698
885
|
# with this user, however the already authenticated connections
|
|
699
886
|
# will still work.
|
|
700
|
-
#
|
|
701
|
-
#
|
|
887
|
+
# skip-sanitize-payload RESTORE dump-payload sanitization is skipped.
|
|
888
|
+
# sanitize-payload RESTORE dump-payload is sanitized (default).
|
|
889
|
+
# +<command> Allow the execution of that command.
|
|
890
|
+
# May be used with `|` for allowing subcommands (e.g "+config|get")
|
|
891
|
+
# -<command> Disallow the execution of that command.
|
|
892
|
+
# May be used with `|` for blocking subcommands (e.g "-config|set")
|
|
702
893
|
# +@<category> Allow the execution of all the commands in such category
|
|
703
894
|
# with valid categories are like @admin, @set, @sortedset, ...
|
|
704
895
|
# and so forth, see the full list in the server.c file where
|
|
@@ -706,10 +897,11 @@ replica-priority 100
|
|
|
706
897
|
# The special category @all means all the commands, but currently
|
|
707
898
|
# present in the server, and that will be loaded in the future
|
|
708
899
|
# via modules.
|
|
709
|
-
# +<command>|
|
|
710
|
-
#
|
|
711
|
-
#
|
|
712
|
-
#
|
|
900
|
+
# +<command>|first-arg Allow a specific first argument of an otherwise
|
|
901
|
+
# disabled command. It is only supported on commands with
|
|
902
|
+
# no sub-commands, and is not allowed as negative form
|
|
903
|
+
# like -SELECT|1, only additive starting with "+". This
|
|
904
|
+
# feature is deprecated and may be removed in the future.
|
|
713
905
|
# allcommands Alias for +@all. Note that it implies the ability to execute
|
|
714
906
|
# all the future commands loaded via the modules system.
|
|
715
907
|
# nocommands Alias for -@all.
|
|
@@ -717,8 +909,17 @@ replica-priority 100
|
|
|
717
909
|
# commands. For instance ~* allows all the keys. The pattern
|
|
718
910
|
# is a glob-style pattern like the one of KEYS.
|
|
719
911
|
# It is possible to specify multiple patterns.
|
|
912
|
+
# %R~<pattern> Add key read pattern that specifies which keys can be read
|
|
913
|
+
# from.
|
|
914
|
+
# %W~<pattern> Add key write pattern that specifies which keys can be
|
|
915
|
+
# written to.
|
|
720
916
|
# allkeys Alias for ~*
|
|
721
917
|
# resetkeys Flush the list of allowed keys patterns.
|
|
918
|
+
# &<pattern> Add a glob-style pattern of Pub/Sub channels that can be
|
|
919
|
+
# accessed by the user. It is possible to specify multiple channel
|
|
920
|
+
# patterns.
|
|
921
|
+
# allchannels Alias for &*
|
|
922
|
+
# resetchannels Flush the list of allowed channel patterns.
|
|
722
923
|
# ><password> Add this password to the list of valid password for the user.
|
|
723
924
|
# For example >mypass will add "mypass" to the list.
|
|
724
925
|
# This directive clears the "nopass" flag (see later).
|
|
@@ -737,6 +938,14 @@ replica-priority 100
|
|
|
737
938
|
# reset Performs the following actions: resetpass, resetkeys, off,
|
|
738
939
|
# -@all. The user returns to the same state it has immediately
|
|
739
940
|
# after its creation.
|
|
941
|
+
# (<options>) Create a new selector with the options specified within the
|
|
942
|
+
# parentheses and attach it to the user. Each option should be
|
|
943
|
+
# space separated. The first character must be ( and the last
|
|
944
|
+
# character must be ).
|
|
945
|
+
# clearselectors Remove all of the currently attached selectors.
|
|
946
|
+
# Note this does not change the "root" user permissions,
|
|
947
|
+
# which are the permissions directly applied onto the
|
|
948
|
+
# user (outside the parentheses).
|
|
740
949
|
#
|
|
741
950
|
# ACL rules can be specified in any order: for instance you can start with
|
|
742
951
|
# passwords, then flags, or key patterns. However note that the additive
|
|
@@ -758,6 +967,40 @@ replica-priority 100
|
|
|
758
967
|
#
|
|
759
968
|
# Basically ACL rules are processed left-to-right.
|
|
760
969
|
#
|
|
970
|
+
# The following is a list of command categories and their meanings:
|
|
971
|
+
# * keyspace - Writing or reading from keys, databases, or their metadata
|
|
972
|
+
# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
|
|
973
|
+
# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
|
|
974
|
+
# key or metadata will also have `write` category. Commands that only read
|
|
975
|
+
# the keyspace, key or metadata will have the `read` category.
|
|
976
|
+
# * read - Reading from keys (values or metadata). Note that commands that don't
|
|
977
|
+
# interact with keys, will not have either `read` or `write`.
|
|
978
|
+
# * write - Writing to keys (values or metadata)
|
|
979
|
+
# * admin - Administrative commands. Normal applications will never need to use
|
|
980
|
+
# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
|
|
981
|
+
# * dangerous - Potentially dangerous (each should be considered with care for
|
|
982
|
+
# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
|
|
983
|
+
# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
|
|
984
|
+
# * connection - Commands affecting the connection or other connections.
|
|
985
|
+
# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
|
|
986
|
+
# * blocking - Potentially blocking the connection until released by another
|
|
987
|
+
# command.
|
|
988
|
+
# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
|
|
989
|
+
# number of elements in the key.
|
|
990
|
+
# * slow - All commands that are not Fast.
|
|
991
|
+
# * pubsub - PUBLISH / SUBSCRIBE related
|
|
992
|
+
# * transaction - WATCH / MULTI / EXEC related commands.
|
|
993
|
+
# * scripting - Scripting related.
|
|
994
|
+
# * set - Data type: sets related.
|
|
995
|
+
# * sortedset - Data type: zsets related.
|
|
996
|
+
# * list - Data type: lists related.
|
|
997
|
+
# * hash - Data type: hashes related.
|
|
998
|
+
# * string - Data type: strings related.
|
|
999
|
+
# * bitmap - Data type: bitmaps related.
|
|
1000
|
+
# * hyperloglog - Data type: hyperloglog related.
|
|
1001
|
+
# * geo - Data type: geo related.
|
|
1002
|
+
# * stream - Data type: streams related.
|
|
1003
|
+
#
|
|
761
1004
|
# For more information about ACL configuration please refer to
|
|
762
1005
|
# the Redis web site at https://redis.io/topics/acl
|
|
763
1006
|
|
|
@@ -787,8 +1030,24 @@ acllog-max-len 128
|
|
|
787
1030
|
# AUTH <password> as usually, or more explicitly with AUTH default <password>
|
|
788
1031
|
# if they follow the new protocol: both will work.
|
|
789
1032
|
#
|
|
1033
|
+
# The requirepass is not compatible with aclfile option and the ACL LOAD
|
|
1034
|
+
# command, these will cause requirepass to be ignored.
|
|
1035
|
+
#
|
|
790
1036
|
# requirepass foobared
|
|
791
1037
|
|
|
1038
|
+
# New users are initialized with restrictive permissions by default, via the
|
|
1039
|
+
# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it
|
|
1040
|
+
# is possible to manage access to Pub/Sub channels with ACL rules as well. The
|
|
1041
|
+
# default Pub/Sub channels permission if new users is controlled by the
|
|
1042
|
+
# acl-pubsub-default configuration directive, which accepts one of these values:
|
|
1043
|
+
#
|
|
1044
|
+
# allchannels: grants access to all Pub/Sub channels
|
|
1045
|
+
# resetchannels: revokes access to all Pub/Sub channels
|
|
1046
|
+
#
|
|
1047
|
+
# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission.
|
|
1048
|
+
#
|
|
1049
|
+
# acl-pubsub-default resetchannels
|
|
1050
|
+
|
|
792
1051
|
# Command renaming (DEPRECATED).
|
|
793
1052
|
#
|
|
794
1053
|
# ------------------------------------------------------------------------
|
|
@@ -877,14 +1136,12 @@ acllog-max-len 128
|
|
|
877
1136
|
# Both LRU, LFU and volatile-ttl are implemented using approximated
|
|
878
1137
|
# randomized algorithms.
|
|
879
1138
|
#
|
|
880
|
-
# Note: with any of the above policies,
|
|
881
|
-
#
|
|
882
|
-
#
|
|
883
|
-
#
|
|
884
|
-
#
|
|
885
|
-
#
|
|
886
|
-
# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
|
|
887
|
-
# getset mset msetnx exec sort
|
|
1139
|
+
# Note: with any of the above policies, when there are no suitable keys for
|
|
1140
|
+
# eviction, Redis will return an error on write operations that require
|
|
1141
|
+
# more memory. These are usually commands that create new keys, add data or
|
|
1142
|
+
# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
|
|
1143
|
+
# SORT (due to the STORE argument), and EXEC (if the transaction includes any
|
|
1144
|
+
# command that requires memory).
|
|
888
1145
|
#
|
|
889
1146
|
# The default is:
|
|
890
1147
|
#
|
|
@@ -901,6 +1158,14 @@ acllog-max-len 128
|
|
|
901
1158
|
#
|
|
902
1159
|
# maxmemory-samples 5
|
|
903
1160
|
|
|
1161
|
+
# Eviction processing is designed to function well with the default setting.
|
|
1162
|
+
# If there is an unusually large amount of write traffic, this value may need to
|
|
1163
|
+
# be increased. Decreasing this value may reduce latency at the risk of
|
|
1164
|
+
# eviction processing effectiveness
|
|
1165
|
+
# 0 = minimum latency, 10 = default, 100 = process without regard to latency
|
|
1166
|
+
#
|
|
1167
|
+
# maxmemory-eviction-tenacity 10
|
|
1168
|
+
|
|
904
1169
|
# Starting from Redis 5, by default a replica will ignore its maxmemory setting
|
|
905
1170
|
# (unless it is promoted to master after a failover or manually). It means
|
|
906
1171
|
# that the eviction of keys will be just handled by the master, sending the
|
|
@@ -994,6 +1259,13 @@ replica-lazy-flush no
|
|
|
994
1259
|
|
|
995
1260
|
lazyfree-lazy-user-del no
|
|
996
1261
|
|
|
1262
|
+
# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
|
|
1263
|
+
# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
|
|
1264
|
+
# commands. When neither flag is passed, this directive will be used to determine
|
|
1265
|
+
# if the data should be deleted asynchronously.
|
|
1266
|
+
|
|
1267
|
+
lazyfree-lazy-user-flush no
|
|
1268
|
+
|
|
997
1269
|
################################ THREADED I/O #################################
|
|
998
1270
|
|
|
999
1271
|
# Redis is mostly single threaded, however there are certain threaded
|
|
@@ -1032,7 +1304,7 @@ lazyfree-lazy-user-del no
|
|
|
1032
1304
|
# Usually threading reads doesn't help much.
|
|
1033
1305
|
#
|
|
1034
1306
|
# NOTE 1: This configuration directive cannot be changed at runtime via
|
|
1035
|
-
# CONFIG SET.
|
|
1307
|
+
# CONFIG SET. Also, this feature currently does not work when SSL is
|
|
1036
1308
|
# enabled.
|
|
1037
1309
|
#
|
|
1038
1310
|
# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make
|
|
@@ -1050,7 +1322,7 @@ lazyfree-lazy-user-del no
|
|
|
1050
1322
|
# attempt to have background child processes killed before all others, and
|
|
1051
1323
|
# replicas killed before masters.
|
|
1052
1324
|
#
|
|
1053
|
-
# Redis supports
|
|
1325
|
+
# Redis supports these options:
|
|
1054
1326
|
#
|
|
1055
1327
|
# no: Don't make changes to oom-score-adj (default).
|
|
1056
1328
|
# yes: Alias to "relative" see below.
|
|
@@ -1071,6 +1343,19 @@ oom-score-adj no
|
|
|
1071
1343
|
# oom-score-adj-values to positive values will always succeed.
|
|
1072
1344
|
oom-score-adj-values 0 200 800
|
|
1073
1345
|
|
|
1346
|
+
|
|
1347
|
+
#################### KERNEL transparent hugepage CONTROL ######################
|
|
1348
|
+
|
|
1349
|
+
# Usually the kernel Transparent Huge Pages control is set to "madvise" or
|
|
1350
|
+
# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
|
|
1351
|
+
# case this config has no effect. On systems in which it is set to "always",
|
|
1352
|
+
# redis will attempt to disable it specifically for the redis process in order
|
|
1353
|
+
# to avoid latency problems specifically with fork(2) and CoW.
|
|
1354
|
+
# If for some reason you prefer to keep it enabled, you can set this config to
|
|
1355
|
+
# "no" and the kernel global to "always".
|
|
1356
|
+
|
|
1357
|
+
disable-thp yes
|
|
1358
|
+
|
|
1074
1359
|
############################## APPEND ONLY MODE ###############################
|
|
1075
1360
|
|
|
1076
1361
|
# By default Redis asynchronously dumps the dataset on disk. This mode is
|
|
@@ -1089,14 +1374,43 @@ oom-score-adj-values 0 200 800
|
|
|
1089
1374
|
# If the AOF is enabled on startup Redis will load the AOF, that is the file
|
|
1090
1375
|
# with the better durability guarantees.
|
|
1091
1376
|
#
|
|
1092
|
-
# Please check
|
|
1377
|
+
# Please check https://redis.io/topics/persistence for more information.
|
|
1093
1378
|
|
|
1094
1379
|
appendonly no
|
|
1095
1380
|
|
|
1096
|
-
# The name of the append only file
|
|
1381
|
+
# The base name of the append only file.
|
|
1382
|
+
#
|
|
1383
|
+
# Redis 7 and newer use a set of append-only files to persist the dataset
|
|
1384
|
+
# and changes applied to it. There are two basic types of files in use:
|
|
1385
|
+
#
|
|
1386
|
+
# - Base files, which are a snapshot representing the complete state of the
|
|
1387
|
+
# dataset at the time the file was created. Base files can be either in
|
|
1388
|
+
# the form of RDB (binary serialized) or AOF (textual commands).
|
|
1389
|
+
# - Incremental files, which contain additional commands that were applied
|
|
1390
|
+
# to the dataset following the previous file.
|
|
1391
|
+
#
|
|
1392
|
+
# In addition, manifest files are used to track the files and the order in
|
|
1393
|
+
# which they were created and should be applied.
|
|
1394
|
+
#
|
|
1395
|
+
# Append-only file names are created by Redis following a specific pattern.
|
|
1396
|
+
# The file name's prefix is based on the 'appendfilename' configuration
|
|
1397
|
+
# parameter, followed by additional information about the sequence and type.
|
|
1398
|
+
#
|
|
1399
|
+
# For example, if appendfilename is set to appendonly.aof, the following file
|
|
1400
|
+
# names could be derived:
|
|
1401
|
+
#
|
|
1402
|
+
# - appendonly.aof.1.base.rdb as a base file.
|
|
1403
|
+
# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
|
|
1404
|
+
# - appendonly.aof.manifest as a manifest file.
|
|
1097
1405
|
|
|
1098
1406
|
appendfilename "appendonly.aof"
|
|
1099
1407
|
|
|
1408
|
+
# For convenience, Redis stores all persistent append-only files in a dedicated
|
|
1409
|
+
# directory. The name of the directory is determined by the appenddirname
|
|
1410
|
+
# configuration parameter.
|
|
1411
|
+
|
|
1412
|
+
appenddirname "appendonlydir"
|
|
1413
|
+
|
|
1100
1414
|
# The fsync() call tells the Operating System to actually write data on disk
|
|
1101
1415
|
# instead of waiting for more data in the output buffer. Some OS will really flush
|
|
1102
1416
|
# data on disk, some other OS will just try to do it ASAP.
|
|
@@ -1189,34 +1503,69 @@ auto-aof-rewrite-min-size 64mb
|
|
|
1189
1503
|
# will be found.
|
|
1190
1504
|
aof-load-truncated yes
|
|
1191
1505
|
|
|
1192
|
-
#
|
|
1193
|
-
#
|
|
1194
|
-
#
|
|
1506
|
+
# Redis can create append-only base files in either RDB or AOF formats. Using
|
|
1507
|
+
# the RDB format is always faster and more efficient, and disabling it is only
|
|
1508
|
+
# supported for backward compatibility purposes.
|
|
1509
|
+
aof-use-rdb-preamble yes
|
|
1510
|
+
|
|
1511
|
+
# Redis supports recording timestamp annotations in the AOF to support restoring
|
|
1512
|
+
# the data from a specific point-in-time. However, using this capability changes
|
|
1513
|
+
# the AOF format in a way that may not be compatible with existing AOF parsers.
|
|
1514
|
+
aof-timestamp-enabled no
|
|
1515
|
+
|
|
1516
|
+
################################ SHUTDOWN #####################################
|
|
1517
|
+
|
|
1518
|
+
# Maximum time to wait for replicas when shutting down, in seconds.
|
|
1195
1519
|
#
|
|
1196
|
-
#
|
|
1520
|
+
# During shut down, a grace period allows any lagging replicas to catch up with
|
|
1521
|
+
# the latest replication offset before the master exists. This period can
|
|
1522
|
+
# prevent data loss, especially for deployments without configured disk backups.
|
|
1197
1523
|
#
|
|
1198
|
-
#
|
|
1199
|
-
#
|
|
1200
|
-
#
|
|
1201
|
-
|
|
1524
|
+
# The 'shutdown-timeout' value is the grace period's duration in seconds. It is
|
|
1525
|
+
# only applicable when the instance has replicas. To disable the feature, set
|
|
1526
|
+
# the value to 0.
|
|
1527
|
+
#
|
|
1528
|
+
# shutdown-timeout 10
|
|
1529
|
+
|
|
1530
|
+
# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default
|
|
1531
|
+
# an RDB snapshot is written to disk in a blocking operation if save points are configured.
|
|
1532
|
+
# The options used on signaled shutdown can include the following values:
|
|
1533
|
+
# default: Saves RDB snapshot only if save points are configured.
|
|
1534
|
+
# Waits for lagging replicas to catch up.
|
|
1535
|
+
# save: Forces a DB saving operation even if no save points are configured.
|
|
1536
|
+
# nosave: Prevents DB saving operation even if one or more save points are configured.
|
|
1537
|
+
# now: Skips waiting for lagging replicas.
|
|
1538
|
+
# force: Ignores any errors that would normally prevent the server from exiting.
|
|
1539
|
+
#
|
|
1540
|
+
# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
|
|
1541
|
+
# Example: "nosave force now"
|
|
1542
|
+
#
|
|
1543
|
+
# shutdown-on-sigint default
|
|
1544
|
+
# shutdown-on-sigterm default
|
|
1202
1545
|
|
|
1203
|
-
|
|
1546
|
+
################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
|
|
1204
1547
|
|
|
1205
|
-
#
|
|
1548
|
+
# Maximum time in milliseconds for EVAL scripts, functions and in some cases
|
|
1549
|
+
# modules' commands before Redis can start processing or rejecting other clients.
|
|
1206
1550
|
#
|
|
1207
|
-
# If the maximum execution time is reached Redis will
|
|
1208
|
-
#
|
|
1209
|
-
# reply to queries with an error.
|
|
1551
|
+
# If the maximum execution time is reached Redis will start to reply to most
|
|
1552
|
+
# commands with a BUSY error.
|
|
1210
1553
|
#
|
|
1211
|
-
#
|
|
1212
|
-
# SCRIPT KILL
|
|
1213
|
-
#
|
|
1214
|
-
# is the only way to shut down the server in the case a write command was
|
|
1215
|
-
# already issued by the script but the user doesn't want to wait for the natural
|
|
1216
|
-
# termination of the script.
|
|
1554
|
+
# In this state Redis will only allow a handful of commands to be executed.
|
|
1555
|
+
# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
|
|
1556
|
+
# module specific 'allow-busy' commands.
|
|
1217
1557
|
#
|
|
1218
|
-
#
|
|
1219
|
-
|
|
1558
|
+
# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
|
|
1559
|
+
# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
|
|
1560
|
+
# the server in the case a write command was already issued by the script when
|
|
1561
|
+
# the user doesn't want to wait for the natural termination of the script.
|
|
1562
|
+
#
|
|
1563
|
+
# The default is 5 seconds. It is possible to set it to 0 or a negative value
|
|
1564
|
+
# to disable this mechanism (uninterrupted execution). Note that in the past
|
|
1565
|
+
# this config had a different name, which is now an alias, so both of these do
|
|
1566
|
+
# the same:
|
|
1567
|
+
# lua-time-limit 5000
|
|
1568
|
+
# busy-reply-threshold 5000
|
|
1220
1569
|
|
|
1221
1570
|
################################ REDIS CLUSTER ###############################
|
|
1222
1571
|
|
|
@@ -1240,6 +1589,11 @@ lua-time-limit 5000
|
|
|
1240
1589
|
#
|
|
1241
1590
|
# cluster-node-timeout 15000
|
|
1242
1591
|
|
|
1592
|
+
# The cluster port is the port that the cluster bus will listen for inbound connections on. When set
|
|
1593
|
+
# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires
|
|
1594
|
+
# you to specify the cluster bus port when executing cluster meet.
|
|
1595
|
+
# cluster-port 0
|
|
1596
|
+
|
|
1243
1597
|
# A replica of a failing master will avoid to start a failover if its data
|
|
1244
1598
|
# looks too old.
|
|
1245
1599
|
#
|
|
@@ -1298,12 +1652,21 @@ lua-time-limit 5000
|
|
|
1298
1652
|
# master in your cluster.
|
|
1299
1653
|
#
|
|
1300
1654
|
# Default is 1 (replicas migrate only if their masters remain with at least
|
|
1301
|
-
# one replica). To disable migration just set it to a very large value
|
|
1655
|
+
# one replica). To disable migration just set it to a very large value or
|
|
1656
|
+
# set cluster-allow-replica-migration to 'no'.
|
|
1302
1657
|
# A value of 0 can be set but is useful only for debugging and dangerous
|
|
1303
1658
|
# in production.
|
|
1304
1659
|
#
|
|
1305
1660
|
# cluster-migration-barrier 1
|
|
1306
1661
|
|
|
1662
|
+
# Turning off this option allows to use less automatic cluster configuration.
|
|
1663
|
+
# It both disables migration to orphaned masters and migration from masters
|
|
1664
|
+
# that became empty.
|
|
1665
|
+
#
|
|
1666
|
+
# Default is 'yes' (allow automatic migrations).
|
|
1667
|
+
#
|
|
1668
|
+
# cluster-allow-replica-migration yes
|
|
1669
|
+
|
|
1307
1670
|
# By default Redis Cluster nodes stop accepting queries if they detect there
|
|
1308
1671
|
# is at least a hash slot uncovered (no available node is serving it).
|
|
1309
1672
|
# This way if the cluster is partially down (for example a range of hash slots
|
|
@@ -1318,7 +1681,7 @@ lua-time-limit 5000
|
|
|
1318
1681
|
# cluster-require-full-coverage yes
|
|
1319
1682
|
|
|
1320
1683
|
# This option, when set to yes, prevents replicas from trying to failover its
|
|
1321
|
-
# master during master failures. However the
|
|
1684
|
+
# master during master failures. However the replica can still perform a
|
|
1322
1685
|
# manual failover, if forced to do so.
|
|
1323
1686
|
#
|
|
1324
1687
|
# This is useful in different scenarios, especially in the case of multiple
|
|
@@ -1328,7 +1691,7 @@ lua-time-limit 5000
|
|
|
1328
1691
|
# cluster-replica-no-failover no
|
|
1329
1692
|
|
|
1330
1693
|
# This option, when set to yes, allows nodes to serve read traffic while the
|
|
1331
|
-
#
|
|
1694
|
+
# cluster is in a down state, as long as it believes it owns the slots.
|
|
1332
1695
|
#
|
|
1333
1696
|
# This is useful for two cases. The first case is for when an application
|
|
1334
1697
|
# doesn't require consistency of data during node failures or network partitions.
|
|
@@ -1343,8 +1706,54 @@ lua-time-limit 5000
|
|
|
1343
1706
|
#
|
|
1344
1707
|
# cluster-allow-reads-when-down no
|
|
1345
1708
|
|
|
1709
|
+
# This option, when set to yes, allows nodes to serve pubsub shard traffic while
|
|
1710
|
+
# the cluster is in a down state, as long as it believes it owns the slots.
|
|
1711
|
+
#
|
|
1712
|
+
# This is useful if the application would like to use the pubsub feature even when
|
|
1713
|
+
# the cluster global stable state is not OK. If the application wants to make sure only
|
|
1714
|
+
# one shard is serving a given channel, this feature should be kept as yes.
|
|
1715
|
+
#
|
|
1716
|
+
# cluster-allow-pubsubshard-when-down yes
|
|
1717
|
+
|
|
1718
|
+
# Cluster link send buffer limit is the limit on the memory usage of an individual
|
|
1719
|
+
# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
|
|
1720
|
+
# this limit. This is to primarily prevent send buffers from growing unbounded on links
|
|
1721
|
+
# toward slow peers (E.g. PubSub messages being piled up).
|
|
1722
|
+
# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
|
|
1723
|
+
# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
|
|
1724
|
+
# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
|
|
1725
|
+
# PubSub message by default. (client-query-buffer-limit default value is 1gb)
|
|
1726
|
+
#
|
|
1727
|
+
# cluster-link-sendbuf-limit 0
|
|
1728
|
+
|
|
1729
|
+
# Clusters can configure their announced hostname using this config. This is a common use case for
|
|
1730
|
+
# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
|
|
1731
|
+
# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
|
|
1732
|
+
# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is
|
|
1733
|
+
# communicated along the clusterbus to all nodes, setting it to an empty string will remove
|
|
1734
|
+
# the hostname and also propagate the removal.
|
|
1735
|
+
#
|
|
1736
|
+
# cluster-announce-hostname ""
|
|
1737
|
+
|
|
1738
|
+
# Clusters can advertise how clients should connect to them using either their IP address,
|
|
1739
|
+
# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
|
|
1740
|
+
# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
|
|
1741
|
+
# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
|
|
1742
|
+
# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS.
|
|
1743
|
+
# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?'
|
|
1744
|
+
# will be returned instead.
|
|
1745
|
+
#
|
|
1746
|
+
# When a cluster advertises itself as having an unknown endpoint, it's indicating that
|
|
1747
|
+
# the server doesn't know how clients can reach the cluster. This can happen in certain
|
|
1748
|
+
# networking situations where there are multiple possible routes to the node, and the
|
|
1749
|
+
# server doesn't know which one the client took. In this case, the server is expecting
|
|
1750
|
+
# the client to reach out on the same endpoint it used for making the last request, but use
|
|
1751
|
+
# the port provided in the response.
|
|
1752
|
+
#
|
|
1753
|
+
# cluster-preferred-endpoint-type ip
|
|
1754
|
+
|
|
1346
1755
|
# In order to setup your cluster make sure to read the documentation
|
|
1347
|
-
# available at
|
|
1756
|
+
# available at https://redis.io web site.
|
|
1348
1757
|
|
|
1349
1758
|
########################## CLUSTER DOCKER/NAT support ########################
|
|
1350
1759
|
|
|
@@ -1354,16 +1763,21 @@ lua-time-limit 5000
|
|
|
1354
1763
|
#
|
|
1355
1764
|
# In order to make Redis Cluster working in such environments, a static
|
|
1356
1765
|
# configuration where each node knows its public address is needed. The
|
|
1357
|
-
# following
|
|
1766
|
+
# following four options are used for this scope, and are:
|
|
1358
1767
|
#
|
|
1359
1768
|
# * cluster-announce-ip
|
|
1360
1769
|
# * cluster-announce-port
|
|
1770
|
+
# * cluster-announce-tls-port
|
|
1361
1771
|
# * cluster-announce-bus-port
|
|
1362
1772
|
#
|
|
1363
|
-
# Each instructs the node about its address, client
|
|
1364
|
-
# bus port. The information is then
|
|
1365
|
-
# so that other nodes will be able to
|
|
1366
|
-
# publishing the information.
|
|
1773
|
+
# Each instructs the node about its address, client ports (for connections
|
|
1774
|
+
# without and with TLS) and cluster message bus port. The information is then
|
|
1775
|
+
# published in the header of the bus packets so that other nodes will be able to
|
|
1776
|
+
# correctly map the address of the node publishing the information.
|
|
1777
|
+
#
|
|
1778
|
+
# If cluster-tls is set to yes and cluster-announce-tls-port is omitted or set
|
|
1779
|
+
# to zero, then cluster-announce-port refers to the TLS port. Note also that
|
|
1780
|
+
# cluster-announce-tls-port has no effect if cluster-tls is set to no.
|
|
1367
1781
|
#
|
|
1368
1782
|
# If the above options are not used, the normal Redis Cluster auto-detection
|
|
1369
1783
|
# will be used instead.
|
|
@@ -1376,7 +1790,8 @@ lua-time-limit 5000
|
|
|
1376
1790
|
# Example:
|
|
1377
1791
|
#
|
|
1378
1792
|
# cluster-announce-ip 10.1.1.5
|
|
1379
|
-
# cluster-announce-port 6379
|
|
1793
|
+
# cluster-announce-tls-port 6379
|
|
1794
|
+
# cluster-announce-port 0
|
|
1380
1795
|
# cluster-announce-bus-port 6380
|
|
1381
1796
|
|
|
1382
1797
|
################################## SLOW LOG ###################################
|
|
@@ -1424,10 +1839,24 @@ slowlog-max-len 128
|
|
|
1424
1839
|
# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
|
|
1425
1840
|
latency-monitor-threshold 0
|
|
1426
1841
|
|
|
1842
|
+
################################ LATENCY TRACKING ##############################
|
|
1843
|
+
|
|
1844
|
+
# The Redis extended latency monitoring tracks the per command latencies and enables
|
|
1845
|
+
# exporting the percentile distribution via the INFO latencystats command,
|
|
1846
|
+
# and cumulative latency distributions (histograms) via the LATENCY command.
|
|
1847
|
+
#
|
|
1848
|
+
# By default, the extended latency monitoring is enabled since the overhead
|
|
1849
|
+
# of keeping track of the command latency is very small.
|
|
1850
|
+
# latency-tracking yes
|
|
1851
|
+
|
|
1852
|
+
# By default the exported latency percentiles via the INFO latencystats command
|
|
1853
|
+
# are the p50, p99, and p999.
|
|
1854
|
+
# latency-tracking-info-percentiles 50 99 99.9
|
|
1855
|
+
|
|
1427
1856
|
############################# EVENT NOTIFICATION ##############################
|
|
1428
1857
|
|
|
1429
1858
|
# Redis can notify Pub/Sub clients about events happening in the key space.
|
|
1430
|
-
# This feature is documented at
|
|
1859
|
+
# This feature is documented at https://redis.io/topics/notifications
|
|
1431
1860
|
#
|
|
1432
1861
|
# For instance if keyspace events notification is enabled, and a client
|
|
1433
1862
|
# performs a DEL operation on key "foo" stored in the Database 0, two
|
|
@@ -1449,9 +1878,11 @@ latency-monitor-threshold 0
|
|
|
1449
1878
|
# z Sorted set commands
|
|
1450
1879
|
# x Expired events (events generated every time a key expires)
|
|
1451
1880
|
# e Evicted events (events generated when a key is evicted for maxmemory)
|
|
1881
|
+
# n New key events (Note: not included in the 'A' class)
|
|
1452
1882
|
# t Stream commands
|
|
1883
|
+
# d Module key type events
|
|
1453
1884
|
# m Key-miss events (Note: It is not included in the 'A' class)
|
|
1454
|
-
# A Alias for g$
|
|
1885
|
+
# A Alias for g$lshzxetd, so that the "AKE" string means all the events
|
|
1455
1886
|
# (Except key-miss events which are excluded from 'A' due to their
|
|
1456
1887
|
# unique nature).
|
|
1457
1888
|
#
|
|
@@ -1474,71 +1905,13 @@ latency-monitor-threshold 0
|
|
|
1474
1905
|
# specify at least one of K or E, no events will be delivered.
|
|
1475
1906
|
notify-keyspace-events ""
|
|
1476
1907
|
|
|
1477
|
-
############################### GOPHER SERVER #################################
|
|
1478
|
-
|
|
1479
|
-
# Redis contains an implementation of the Gopher protocol, as specified in
|
|
1480
|
-
# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt).
|
|
1481
|
-
#
|
|
1482
|
-
# The Gopher protocol was very popular in the late '90s. It is an alternative
|
|
1483
|
-
# to the web, and the implementation both server and client side is so simple
|
|
1484
|
-
# that the Redis server has just 100 lines of code in order to implement this
|
|
1485
|
-
# support.
|
|
1486
|
-
#
|
|
1487
|
-
# What do you do with Gopher nowadays? Well Gopher never *really* died, and
|
|
1488
|
-
# lately there is a movement in order for the Gopher more hierarchical content
|
|
1489
|
-
# composed of just plain text documents to be resurrected. Some want a simpler
|
|
1490
|
-
# internet, others believe that the mainstream internet became too much
|
|
1491
|
-
# controlled, and it's cool to create an alternative space for people that
|
|
1492
|
-
# want a bit of fresh air.
|
|
1493
|
-
#
|
|
1494
|
-
# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol
|
|
1495
|
-
# as a gift.
|
|
1496
|
-
#
|
|
1497
|
-
# --- HOW IT WORKS? ---
|
|
1498
|
-
#
|
|
1499
|
-
# The Redis Gopher support uses the inline protocol of Redis, and specifically
|
|
1500
|
-
# two kind of inline requests that were anyway illegal: an empty request
|
|
1501
|
-
# or any request that starts with "/" (there are no Redis commands starting
|
|
1502
|
-
# with such a slash). Normal RESP2/RESP3 requests are completely out of the
|
|
1503
|
-
# path of the Gopher protocol implementation and are served as usual as well.
|
|
1504
|
-
#
|
|
1505
|
-
# If you open a connection to Redis when Gopher is enabled and send it
|
|
1506
|
-
# a string like "/foo", if there is a key named "/foo" it is served via the
|
|
1507
|
-
# Gopher protocol.
|
|
1508
|
-
#
|
|
1509
|
-
# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher
|
|
1510
|
-
# talking), you likely need a script like the following:
|
|
1511
|
-
#
|
|
1512
|
-
# https://github.com/antirez/gopher2redis
|
|
1513
|
-
#
|
|
1514
|
-
# --- SECURITY WARNING ---
|
|
1515
|
-
#
|
|
1516
|
-
# If you plan to put Redis on the internet in a publicly accessible address
|
|
1517
|
-
# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance.
|
|
1518
|
-
# Once a password is set:
|
|
1519
|
-
#
|
|
1520
|
-
# 1. The Gopher server (when enabled, not by default) will still serve
|
|
1521
|
-
# content via Gopher.
|
|
1522
|
-
# 2. However other commands cannot be called before the client will
|
|
1523
|
-
# authenticate.
|
|
1524
|
-
#
|
|
1525
|
-
# So use the 'requirepass' option to protect your instance.
|
|
1526
|
-
#
|
|
1527
|
-
# Note that Gopher is not currently supported when 'io-threads-do-reads'
|
|
1528
|
-
# is enabled.
|
|
1529
|
-
#
|
|
1530
|
-
# To enable Gopher support, uncomment the following line and set the option
|
|
1531
|
-
# from no (the default) to yes.
|
|
1532
|
-
#
|
|
1533
|
-
# gopher-enabled no
|
|
1534
|
-
|
|
1535
1908
|
############################### ADVANCED CONFIG ###############################
|
|
1536
1909
|
|
|
1537
1910
|
# Hashes are encoded using a memory efficient data structure when they have a
|
|
1538
1911
|
# small number of entries, and the biggest entry does not exceed a given
|
|
1539
1912
|
# threshold. These thresholds can be configured using the following directives.
|
|
1540
|
-
hash-max-
|
|
1541
|
-
hash-max-
|
|
1913
|
+
hash-max-listpack-entries 512
|
|
1914
|
+
hash-max-listpack-value 64
|
|
1542
1915
|
|
|
1543
1916
|
# Lists are also encoded in a special way to save a lot of space.
|
|
1544
1917
|
# The number of entries allowed per internal list node can be specified
|
|
@@ -1553,7 +1926,7 @@ hash-max-ziplist-value 64
|
|
|
1553
1926
|
# per list node.
|
|
1554
1927
|
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
|
|
1555
1928
|
# but if your use case is unique, adjust the settings as necessary.
|
|
1556
|
-
list-max-
|
|
1929
|
+
list-max-listpack-size -2
|
|
1557
1930
|
|
|
1558
1931
|
# Lists may also be compressed.
|
|
1559
1932
|
# Compress depth is the number of quicklist ziplist nodes from *each* side of
|
|
@@ -1581,8 +1954,8 @@ set-max-intset-entries 512
|
|
|
1581
1954
|
# Similarly to hashes and lists, sorted sets are also specially encoded in
|
|
1582
1955
|
# order to save a lot of space. This encoding is only used when the length and
|
|
1583
1956
|
# elements of a sorted set are below the following limits:
|
|
1584
|
-
zset-max-
|
|
1585
|
-
zset-max-
|
|
1957
|
+
zset-max-listpack-entries 128
|
|
1958
|
+
zset-max-listpack-value 64
|
|
1586
1959
|
|
|
1587
1960
|
# HyperLogLog sparse representation bytes limit. The limit includes the
|
|
1588
1961
|
# 16 bytes header. When an HyperLogLog using the sparse representation crosses
|
|
@@ -1604,7 +1977,7 @@ hll-sparse-max-bytes 3000
|
|
|
1604
1977
|
# maximum number of items it may contain before switching to a new node when
|
|
1605
1978
|
# appending new stream entries. If any of the following settings are set to
|
|
1606
1979
|
# zero, the limit is ignored, so for instance it is possible to set just a
|
|
1607
|
-
# max
|
|
1980
|
+
# max entries limit by setting max-bytes to 0 and max-entries to the desired
|
|
1608
1981
|
# value.
|
|
1609
1982
|
stream-node-max-bytes 4096
|
|
1610
1983
|
stream-node-max-entries 100
|
|
@@ -1637,7 +2010,7 @@ activerehashing yes
|
|
|
1637
2010
|
# The limit can be set differently for the three different classes of clients:
|
|
1638
2011
|
#
|
|
1639
2012
|
# normal -> normal clients including MONITOR clients
|
|
1640
|
-
# replica
|
|
2013
|
+
# replica -> replica clients
|
|
1641
2014
|
# pubsub -> clients subscribed to at least one pubsub channel or pattern
|
|
1642
2015
|
#
|
|
1643
2016
|
# The syntax of every client-output-buffer-limit directive is the following:
|
|
@@ -1661,6 +2034,13 @@ activerehashing yes
|
|
|
1661
2034
|
# Instead there is a default limit for pubsub and replica clients, since
|
|
1662
2035
|
# subscribers and replicas receive data in a push fashion.
|
|
1663
2036
|
#
|
|
2037
|
+
# Note that it doesn't make sense to set the replica clients output buffer
|
|
2038
|
+
# limit lower than the repl-backlog-size config (partial sync will succeed
|
|
2039
|
+
# and then replica will get disconnected).
|
|
2040
|
+
# Such a configuration is ignored (the size of repl-backlog-size will be used).
|
|
2041
|
+
# This doesn't have memory consumption implications since the replica client
|
|
2042
|
+
# will share the backlog buffers memory.
|
|
2043
|
+
#
|
|
1664
2044
|
# Both the hard or the soft limit can be disabled by setting them to zero.
|
|
1665
2045
|
client-output-buffer-limit normal 0 0 0
|
|
1666
2046
|
client-output-buffer-limit replica 256mb 64mb 60
|
|
@@ -1674,6 +2054,25 @@ client-output-buffer-limit pubsub 32mb 8mb 60
|
|
|
1674
2054
|
#
|
|
1675
2055
|
# client-query-buffer-limit 1gb
|
|
1676
2056
|
|
|
2057
|
+
# In some scenarios client connections can hog up memory leading to OOM
|
|
2058
|
+
# errors or data eviction. To avoid this we can cap the accumulated memory
|
|
2059
|
+
# used by all client connections (all pubsub and normal clients). Once we
|
|
2060
|
+
# reach that limit connections will be dropped by the server freeing up
|
|
2061
|
+
# memory. The server will attempt to drop the connections using the most
|
|
2062
|
+
# memory first. We call this mechanism "client eviction".
|
|
2063
|
+
#
|
|
2064
|
+
# Client eviction is configured using the maxmemory-clients setting as follows:
|
|
2065
|
+
# 0 - client eviction is disabled (default)
|
|
2066
|
+
#
|
|
2067
|
+
# A memory value can be used for the client eviction threshold,
|
|
2068
|
+
# for example:
|
|
2069
|
+
# maxmemory-clients 1g
|
|
2070
|
+
#
|
|
2071
|
+
# A percentage value (between 1% and 100%) means the client eviction threshold
|
|
2072
|
+
# is based on a percentage of the maxmemory setting. For example to set client
|
|
2073
|
+
# eviction at 5% of maxmemory:
|
|
2074
|
+
# maxmemory-clients 5%
|
|
2075
|
+
|
|
1677
2076
|
# In the Redis protocol, bulk requests, that are, elements representing single
|
|
1678
2077
|
# strings, are normally limited to 512 mb. However you can change this limit
|
|
1679
2078
|
# here, but must be 1mb or greater
|
|
@@ -1714,13 +2113,13 @@ hz 10
|
|
|
1714
2113
|
dynamic-hz yes
|
|
1715
2114
|
|
|
1716
2115
|
# When a child rewrites the AOF file, if the following option is enabled
|
|
1717
|
-
# the file will be fsync-ed every
|
|
2116
|
+
# the file will be fsync-ed every 4 MB of data generated. This is useful
|
|
1718
2117
|
# in order to commit the file to the disk more incrementally and avoid
|
|
1719
2118
|
# big latency spikes.
|
|
1720
2119
|
aof-rewrite-incremental-fsync yes
|
|
1721
2120
|
|
|
1722
2121
|
# When redis saves RDB file, if the following option is enabled
|
|
1723
|
-
# the file will be fsync-ed every
|
|
2122
|
+
# the file will be fsync-ed every 4 MB of data generated. This is useful
|
|
1724
2123
|
# in order to commit the file to the disk more incrementally and avoid
|
|
1725
2124
|
# big latency spikes.
|
|
1726
2125
|
rdb-save-incremental-fsync yes
|
|
@@ -1817,7 +2216,7 @@ rdb-save-incremental-fsync yes
|
|
|
1817
2216
|
# defragmentation process. If you are not sure about what they mean it is
|
|
1818
2217
|
# a good idea to leave the defaults untouched.
|
|
1819
2218
|
|
|
1820
|
-
#
|
|
2219
|
+
# Active defragmentation is disabled by default
|
|
1821
2220
|
# activedefrag no
|
|
1822
2221
|
|
|
1823
2222
|
# Minimum amount of fragmentation waste to start active defrag
|