|
|
|
@ -32,17 +32,8 @@
|
|
|
|
|
# If instead you are interested in using includes to override configuration
|
|
|
|
|
# options, it is better to use include as the last line.
|
|
|
|
|
#
|
|
|
|
|
# Included paths may contain wildcards. All files matching the wildcards will
|
|
|
|
|
# be included in alphabetical order.
|
|
|
|
|
# Note that if an include path contains a wildcards but no files match it when
|
|
|
|
|
# the server is started, the include statement will be ignored and no error will
|
|
|
|
|
# be emitted. It is safe, therefore, to include wildcard files from empty
|
|
|
|
|
# directories.
|
|
|
|
|
#
|
|
|
|
|
# include /path/to/local.conf
|
|
|
|
|
# include /path/to/other.conf
|
|
|
|
|
# include /path/to/fragments/*.conf
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
################################## MODULES #####################################
|
|
|
|
|
|
|
|
|
@ -60,7 +51,7 @@
|
|
|
|
|
# the "bind" configuration directive, followed by one or more IP addresses.
|
|
|
|
|
# Each address can be prefixed by "-", which means that redis will not fail to
|
|
|
|
|
# start if the address is not available. Being not available only refers to
|
|
|
|
|
# addresses that does not correspond to any network interface. Addresses that
|
|
|
|
|
# addresses that does not correspond to any network interfece. Addresses that
|
|
|
|
|
# are already in use will always fail, and unsupported protocols will always BE
|
|
|
|
|
# silently skipped.
|
|
|
|
|
#
|
|
|
|
@ -79,63 +70,32 @@
|
|
|
|
|
# running on).
|
|
|
|
|
#
|
|
|
|
|
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
|
|
|
|
|
# COMMENT OUT THE FOLLOWING LINE.
|
|
|
|
|
#
|
|
|
|
|
# You will also need to set a password unless you explicitly disable protected
|
|
|
|
|
# mode.
|
|
|
|
|
# JUST COMMENT OUT THE FOLLOWING LINE.
|
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
# bind 127.0.0.1 -::1
|
|
|
|
|
|
|
|
|
|
# By default, outgoing connections (from replica to master, from Sentinel to
|
|
|
|
|
# instances, cluster bus, etc.) are not bound to a specific local address. In
|
|
|
|
|
# most cases, this means the operating system will handle that based on routing
|
|
|
|
|
# and the interface through which the connection goes out.
|
|
|
|
|
#
|
|
|
|
|
# Using bind-source-addr it is possible to configure a specific address to bind
|
|
|
|
|
# to, which may also affect how the connection gets routed.
|
|
|
|
|
#
|
|
|
|
|
# Example:
|
|
|
|
|
#
|
|
|
|
|
# bind-source-addr 10.0.0.1
|
|
|
|
|
|
|
|
|
|
# Protected mode is a layer of security protection, in order to avoid that
|
|
|
|
|
# Redis instances left open on the internet are accessed and exploited.
|
|
|
|
|
#
|
|
|
|
|
# When protected mode is on and the default user has no password, the server
|
|
|
|
|
# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
|
|
|
|
|
# (::1) or Unix domain sockets.
|
|
|
|
|
# When protected mode is on and if:
|
|
|
|
|
#
|
|
|
|
|
# By default protected mode is enabled. You should disable it only if
|
|
|
|
|
# you are sure you want clients from other hosts to connect to Redis
|
|
|
|
|
# even if no authentication is configured.
|
|
|
|
|
protected-mode no
|
|
|
|
|
|
|
|
|
|
# Redis uses default hardened security configuration directives to reduce the
|
|
|
|
|
# attack surface on innocent users. Therefore, several sensitive configuration
|
|
|
|
|
# directives are immutable, and some potentially-dangerous commands are blocked.
|
|
|
|
|
#
|
|
|
|
|
# Configuration directives that control files that Redis writes to (e.g., 'dir'
|
|
|
|
|
# and 'dbfilename') and that aren't usually modified during runtime
|
|
|
|
|
# are protected by making them immutable.
|
|
|
|
|
#
|
|
|
|
|
# Commands that can increase the attack surface of Redis and that aren't usually
|
|
|
|
|
# called by users are blocked by default.
|
|
|
|
|
# 1) The server is not binding explicitly to a set of addresses using the
|
|
|
|
|
# "bind" directive.
|
|
|
|
|
# 2) No password is configured.
|
|
|
|
|
#
|
|
|
|
|
# These can be exposed to either all connections or just local ones by setting
|
|
|
|
|
# each of the configs listed below to either of these values:
|
|
|
|
|
# The server only accepts connections from clients connecting from the
|
|
|
|
|
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
|
|
|
|
|
# sockets.
|
|
|
|
|
#
|
|
|
|
|
# no - Block for any connection (remain immutable)
|
|
|
|
|
# yes - Allow for any connection (no protection)
|
|
|
|
|
# local - Allow only for local connections. Ones originating from the
|
|
|
|
|
# IPv4 address (127.0.0.1), IPv6 address (::1) or Unix domain sockets.
|
|
|
|
|
#
|
|
|
|
|
# enable-protected-configs no
|
|
|
|
|
# enable-debug-command no
|
|
|
|
|
# enable-module-command no
|
|
|
|
|
# By default protected mode is enabled. You should disable it only if
|
|
|
|
|
# you are sure you want clients from other hosts to connect to Redis
|
|
|
|
|
# even if no authentication is configured, nor a specific set of interfaces
|
|
|
|
|
# are explicitly listed using the "bind" directive.
|
|
|
|
|
protected-mode yes
|
|
|
|
|
|
|
|
|
|
# Accept connections on the specified port, default is 6379 (IANA #815344).
|
|
|
|
|
# If port 0 is specified Redis will not listen on a TCP socket.
|
|
|
|
|
port 6379
|
|
|
|
|
port 16789
|
|
|
|
|
|
|
|
|
|
# TCP listen() backlog.
|
|
|
|
|
#
|
|
|
|
@ -175,16 +135,6 @@ timeout 0
|
|
|
|
|
# Redis default starting with Redis 3.2.1.
|
|
|
|
|
tcp-keepalive 300
|
|
|
|
|
|
|
|
|
|
# Apply OS-specific mechanism to mark the listening socket with the specified
|
|
|
|
|
# ID, to support advanced routing and filtering capabilities.
|
|
|
|
|
#
|
|
|
|
|
# On Linux, the ID represents a connection mark.
|
|
|
|
|
# On FreeBSD, the ID represents a socket cookie ID.
|
|
|
|
|
# On OpenBSD, the ID represents a route table ID.
|
|
|
|
|
#
|
|
|
|
|
# The default value is 0, which implies no marking is required.
|
|
|
|
|
# socket-mark-id 0
|
|
|
|
|
|
|
|
|
|
################################# TLS/SSL #####################################
|
|
|
|
|
|
|
|
|
|
# By default, TLS/SSL is disabled. To enable it, the "tls-port" configuration
|
|
|
|
@ -413,10 +363,10 @@ proc-title-template "{title} {listen-addr} {server-mode}"
|
|
|
|
|
|
|
|
|
|
# Save the DB to disk.
|
|
|
|
|
#
|
|
|
|
|
# save <seconds> <changes> [<seconds> <changes> ...]
|
|
|
|
|
# save <seconds> <changes>
|
|
|
|
|
#
|
|
|
|
|
# Redis will save the DB if the given number of seconds elapsed and it
|
|
|
|
|
# surpassed the given number of write operations against the DB.
|
|
|
|
|
# Redis will save the DB if both the given number of seconds and the given
|
|
|
|
|
# number of write operations against the DB occurred.
|
|
|
|
|
#
|
|
|
|
|
# Snapshotting can be completely disabled with a single empty string argument
|
|
|
|
|
# as in following example:
|
|
|
|
@ -424,13 +374,15 @@ proc-title-template "{title} {listen-addr} {server-mode}"
|
|
|
|
|
# save ""
|
|
|
|
|
#
|
|
|
|
|
# Unless specified otherwise, by default Redis will save the DB:
|
|
|
|
|
# * After 3600 seconds (an hour) if at least 1 change was performed
|
|
|
|
|
# * After 300 seconds (5 minutes) if at least 100 changes were performed
|
|
|
|
|
# * After 60 seconds if at least 10000 changes were performed
|
|
|
|
|
# * After 3600 seconds (an hour) if at least 1 key changed
|
|
|
|
|
# * After 300 seconds (5 minutes) if at least 100 keys changed
|
|
|
|
|
# * After 60 seconds if at least 10000 keys changed
|
|
|
|
|
#
|
|
|
|
|
# You can set these explicitly by uncommenting the following line.
|
|
|
|
|
# You can set these explicitly by uncommenting the three following lines.
|
|
|
|
|
#
|
|
|
|
|
# save 3600 1 300 100 60 10000
|
|
|
|
|
# save 3600 1
|
|
|
|
|
# save 300 100
|
|
|
|
|
# save 60 10000
|
|
|
|
|
|
|
|
|
|
# By default Redis will stop accepting writes if RDB snapshots are enabled
|
|
|
|
|
# (at least one save point) and the latest background save failed.
|
|
|
|
@ -462,13 +414,13 @@ rdbcompression yes
|
|
|
|
|
# tell the loading code to skip the check.
|
|
|
|
|
rdbchecksum yes
|
|
|
|
|
|
|
|
|
|
# Enables or disables full sanitization checks for ziplist and listpack etc when
|
|
|
|
|
# Enables or disables full sanitation checks for ziplist and listpack etc when
|
|
|
|
|
# loading an RDB or RESTORE payload. This reduces the chances of a assertion or
|
|
|
|
|
# crash later on while processing commands.
|
|
|
|
|
# Options:
|
|
|
|
|
# no - Never perform full sanitization
|
|
|
|
|
# yes - Always perform full sanitization
|
|
|
|
|
# clients - Perform full sanitization only for user connections.
|
|
|
|
|
# no - Never perform full sanitation
|
|
|
|
|
# yes - Always perform full sanitation
|
|
|
|
|
# clients - Perform full sanitation only for user connections.
|
|
|
|
|
# Excludes: RDB files, RESTORE commands received from the master
|
|
|
|
|
# connection, and client connections which have the
|
|
|
|
|
# skip-sanitize-payload ACL flag.
|
|
|
|
@ -551,10 +503,9 @@ dir ./
|
|
|
|
|
# still reply to client requests, possibly with out of date data, or the
|
|
|
|
|
# data set may just be empty if this is the first synchronization.
|
|
|
|
|
#
|
|
|
|
|
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with error
|
|
|
|
|
# "MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'"
|
|
|
|
|
# to all data access commands, excluding commands such as:
|
|
|
|
|
# INFO, REPLICAOF, AUTH, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
|
|
|
|
|
# 2) If replica-serve-stale-data is set to 'no' the replica will reply with
|
|
|
|
|
# an error "SYNC with master in progress" to all commands except:
|
|
|
|
|
# INFO, REPLICAOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG, SUBSCRIBE,
|
|
|
|
|
# UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST,
|
|
|
|
|
# HOST and LATENCY.
|
|
|
|
|
#
|
|
|
|
@ -603,7 +554,7 @@ replica-read-only yes
|
|
|
|
|
#
|
|
|
|
|
# With slow disks and fast (large bandwidth) networks, diskless replication
|
|
|
|
|
# works better.
|
|
|
|
|
repl-diskless-sync yes
|
|
|
|
|
repl-diskless-sync no
|
|
|
|
|
|
|
|
|
|
# When diskless replication is enabled, it is possible to configure the delay
|
|
|
|
|
# the server waits in order to spawn the child that transfers the RDB via socket
|
|
|
|
@ -617,12 +568,6 @@ repl-diskless-sync yes
|
|
|
|
|
# it entirely just set it to 0 seconds and the transfer will start ASAP.
|
|
|
|
|
repl-diskless-sync-delay 5
|
|
|
|
|
|
|
|
|
|
# When diskless replication is enabled with a delay, it is possible to let
|
|
|
|
|
# the replication start before the maximum delay is reached if the maximum
|
|
|
|
|
# number of replicas expected have connected. Default of 0 means that the
|
|
|
|
|
# maximum is not defined and Redis will wait the full delay.
|
|
|
|
|
repl-diskless-sync-max-replicas 0
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
# WARNING: RDB diskless load is experimental. Since in this setup the replica
|
|
|
|
|
# does not immediately store an RDB on disk, it may cause data loss during
|
|
|
|
@ -637,23 +582,19 @@ repl-diskless-sync-max-replicas 0
|
|
|
|
|
#
|
|
|
|
|
# In many cases the disk is slower than the network, and storing and loading
|
|
|
|
|
# the RDB file may increase replication time (and even increase the master's
|
|
|
|
|
# Copy on Write memory and replica buffers).
|
|
|
|
|
# Copy on Write memory and salve buffers).
|
|
|
|
|
# However, parsing the RDB file directly from the socket may mean that we have
|
|
|
|
|
# to flush the contents of the current database before the full rdb was
|
|
|
|
|
# received. For this reason we have the following options:
|
|
|
|
|
#
|
|
|
|
|
# "disabled" - Don't use diskless load (store the rdb file to the disk first)
|
|
|
|
|
# "on-empty-db" - Use diskless load only when it is completely safe.
|
|
|
|
|
# "swapdb" - Keep current db contents in RAM while parsing the data directly
|
|
|
|
|
# from the socket. Replicas in this mode can keep serving current
|
|
|
|
|
# data set while replication is in progress, except for cases where
|
|
|
|
|
# they can't recognize master as having a data set from same
|
|
|
|
|
# replication history.
|
|
|
|
|
# Note that this requires sufficient memory, if you don't have it,
|
|
|
|
|
# you risk an OOM kill.
|
|
|
|
|
# "swapdb" - Keep a copy of the current db contents in RAM while parsing
|
|
|
|
|
# the data directly from the socket. note that this requires
|
|
|
|
|
# sufficient memory, if you don't have it, you risk an OOM kill.
|
|
|
|
|
repl-diskless-load disabled
|
|
|
|
|
|
|
|
|
|
# Master send PINGs to its replicas in a predefined interval. It's possible to
|
|
|
|
|
# Replicas send PINGs to server in a predefined interval. It's possible to
|
|
|
|
|
# change this interval with the repl_ping_replica_period option. The default
|
|
|
|
|
# value is 10 seconds.
|
|
|
|
|
#
|
|
|
|
@ -728,31 +669,6 @@ repl-disable-tcp-nodelay no
|
|
|
|
|
# By default the priority is 100.
|
|
|
|
|
replica-priority 100
|
|
|
|
|
|
|
|
|
|
# The propagation error behavior controls how Redis will behave when it is
|
|
|
|
|
# unable to handle a command being processed in the replication stream from a master
|
|
|
|
|
# or processed while reading from an AOF file. Errors that occur during propagation
|
|
|
|
|
# are unexpected, and can cause data inconsistency. However, there are edge cases
|
|
|
|
|
# in earlier versions of Redis where it was possible for the server to replicate or persist
|
|
|
|
|
# commands that would fail on future versions. For this reason the default behavior
|
|
|
|
|
# is to ignore such errors and continue processing commands.
|
|
|
|
|
#
|
|
|
|
|
# If an application wants to ensure there is no data divergence, this configuration
|
|
|
|
|
# should be set to 'panic' instead. The value can also be set to 'panic-on-replicas'
|
|
|
|
|
# to only panic when a replica encounters an error on the replication stream. One of
|
|
|
|
|
# these two panic values will become the default value in the future once there are
|
|
|
|
|
# sufficient safety mechanisms in place to prevent false positive crashes.
|
|
|
|
|
#
|
|
|
|
|
# propagation-error-behavior ignore
|
|
|
|
|
|
|
|
|
|
# Replica ignore disk write errors controls the behavior of a replica when it is
|
|
|
|
|
# unable to persist a write command received from its master to disk. By default,
|
|
|
|
|
# this configuration is set to 'no' and will crash the replica in this condition.
|
|
|
|
|
# It is not recommended to change this default, however in order to be compatible
|
|
|
|
|
# with older versions of Redis this config can be toggled to 'yes' which will just
|
|
|
|
|
# log a warning and execute the write command it got from the master.
|
|
|
|
|
#
|
|
|
|
|
# replica-ignore-disk-write-errors no
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
# By default, Redis Sentinel includes all replicas in its reports. A replica
|
|
|
|
|
# can be excluded from Redis Sentinel's announcements. An unannounced replica
|
|
|
|
@ -884,12 +800,10 @@ replica-priority 100
|
|
|
|
|
# off Disable the user: it's no longer possible to authenticate
|
|
|
|
|
# with this user, however the already authenticated connections
|
|
|
|
|
# will still work.
|
|
|
|
|
# skip-sanitize-payload RESTORE dump-payload sanitization is skipped.
|
|
|
|
|
# skip-sanitize-payload RESTORE dump-payload sanitation is skipped.
|
|
|
|
|
# sanitize-payload RESTORE dump-payload is sanitized (default).
|
|
|
|
|
# +<command> Allow the execution of that command.
|
|
|
|
|
# May be used with `|` for allowing subcommands (e.g "+config|get")
|
|
|
|
|
# -<command> Disallow the execution of that command.
|
|
|
|
|
# May be used with `|` for blocking subcommands (e.g "-config|set")
|
|
|
|
|
# +<command> Allow the execution of that command
|
|
|
|
|
# -<command> Disallow the execution of that command
|
|
|
|
|
# +@<category> Allow the execution of all the commands in such category
|
|
|
|
|
# with valid categories are like @admin, @set, @sortedset, ...
|
|
|
|
|
# and so forth, see the full list in the server.c file where
|
|
|
|
@ -897,11 +811,10 @@ replica-priority 100
|
|
|
|
|
# The special category @all means all the commands, but currently
|
|
|
|
|
# present in the server, and that will be loaded in the future
|
|
|
|
|
# via modules.
|
|
|
|
|
# +<command>|first-arg Allow a specific first argument of an otherwise
|
|
|
|
|
# disabled command. It is only supported on commands with
|
|
|
|
|
# no sub-commands, and is not allowed as negative form
|
|
|
|
|
# like -SELECT|1, only additive starting with "+". This
|
|
|
|
|
# feature is deprecated and may be removed in the future.
|
|
|
|
|
# +<command>|subcommand Allow a specific subcommand of an otherwise
|
|
|
|
|
# disabled command. Note that this form is not
|
|
|
|
|
# allowed as negative like -DEBUG|SEGFAULT, but
|
|
|
|
|
# only additive starting with "+".
|
|
|
|
|
# allcommands Alias for +@all. Note that it implies the ability to execute
|
|
|
|
|
# all the future commands loaded via the modules system.
|
|
|
|
|
# nocommands Alias for -@all.
|
|
|
|
@ -909,10 +822,6 @@ replica-priority 100
|
|
|
|
|
# commands. For instance ~* allows all the keys. The pattern
|
|
|
|
|
# is a glob-style pattern like the one of KEYS.
|
|
|
|
|
# It is possible to specify multiple patterns.
|
|
|
|
|
# %R~<pattern> Add key read pattern that specifies which keys can be read
|
|
|
|
|
# from.
|
|
|
|
|
# %W~<pattern> Add key write pattern that specifies which keys can be
|
|
|
|
|
# written to.
|
|
|
|
|
# allkeys Alias for ~*
|
|
|
|
|
# resetkeys Flush the list of allowed keys patterns.
|
|
|
|
|
# &<pattern> Add a glob-style pattern of Pub/Sub channels that can be
|
|
|
|
@ -938,14 +847,6 @@ replica-priority 100
|
|
|
|
|
# reset Performs the following actions: resetpass, resetkeys, off,
|
|
|
|
|
# -@all. The user returns to the same state it has immediately
|
|
|
|
|
# after its creation.
|
|
|
|
|
# (<options>) Create a new selector with the options specified within the
|
|
|
|
|
# parentheses and attach it to the user. Each option should be
|
|
|
|
|
# space separated. The first character must be ( and the last
|
|
|
|
|
# character must be ).
|
|
|
|
|
# clearselectors Remove all of the currently attached selectors.
|
|
|
|
|
# Note this does not change the "root" user permissions,
|
|
|
|
|
# which are the permissions directly applied onto the
|
|
|
|
|
# user (outside the parentheses).
|
|
|
|
|
#
|
|
|
|
|
# ACL rules can be specified in any order: for instance you can start with
|
|
|
|
|
# passwords, then flags, or key patterns. However note that the additive
|
|
|
|
@ -967,40 +868,6 @@ replica-priority 100
|
|
|
|
|
#
|
|
|
|
|
# Basically ACL rules are processed left-to-right.
|
|
|
|
|
#
|
|
|
|
|
# The following is a list of command categories and their meanings:
|
|
|
|
|
# * keyspace - Writing or reading from keys, databases, or their metadata
|
|
|
|
|
# in a type agnostic way. Includes DEL, RESTORE, DUMP, RENAME, EXISTS, DBSIZE,
|
|
|
|
|
# KEYS, EXPIRE, TTL, FLUSHALL, etc. Commands that may modify the keyspace,
|
|
|
|
|
# key or metadata will also have `write` category. Commands that only read
|
|
|
|
|
# the keyspace, key or metadata will have the `read` category.
|
|
|
|
|
# * read - Reading from keys (values or metadata). Note that commands that don't
|
|
|
|
|
# interact with keys, will not have either `read` or `write`.
|
|
|
|
|
# * write - Writing to keys (values or metadata)
|
|
|
|
|
# * admin - Administrative commands. Normal applications will never need to use
|
|
|
|
|
# these. Includes REPLICAOF, CONFIG, DEBUG, SAVE, MONITOR, ACL, SHUTDOWN, etc.
|
|
|
|
|
# * dangerous - Potentially dangerous (each should be considered with care for
|
|
|
|
|
# various reasons). This includes FLUSHALL, MIGRATE, RESTORE, SORT, KEYS,
|
|
|
|
|
# CLIENT, DEBUG, INFO, CONFIG, SAVE, REPLICAOF, etc.
|
|
|
|
|
# * connection - Commands affecting the connection or other connections.
|
|
|
|
|
# This includes AUTH, SELECT, COMMAND, CLIENT, ECHO, PING, etc.
|
|
|
|
|
# * blocking - Potentially blocking the connection until released by another
|
|
|
|
|
# command.
|
|
|
|
|
# * fast - Fast O(1) commands. May loop on the number of arguments, but not the
|
|
|
|
|
# number of elements in the key.
|
|
|
|
|
# * slow - All commands that are not Fast.
|
|
|
|
|
# * pubsub - PUBLISH / SUBSCRIBE related
|
|
|
|
|
# * transaction - WATCH / MULTI / EXEC related commands.
|
|
|
|
|
# * scripting - Scripting related.
|
|
|
|
|
# * set - Data type: sets related.
|
|
|
|
|
# * sortedset - Data type: zsets related.
|
|
|
|
|
# * list - Data type: lists related.
|
|
|
|
|
# * hash - Data type: hashes related.
|
|
|
|
|
# * string - Data type: strings related.
|
|
|
|
|
# * bitmap - Data type: bitmaps related.
|
|
|
|
|
# * hyperloglog - Data type: hyperloglog related.
|
|
|
|
|
# * geo - Data type: geo related.
|
|
|
|
|
# * stream - Data type: streams related.
|
|
|
|
|
#
|
|
|
|
|
# For more information about ACL configuration please refer to
|
|
|
|
|
# the Redis web site at https://redis.io/topics/acl
|
|
|
|
|
|
|
|
|
@ -1030,10 +897,10 @@ acllog-max-len 128
|
|
|
|
|
# AUTH <password> as usually, or more explicitly with AUTH default <password>
|
|
|
|
|
# if they follow the new protocol: both will work.
|
|
|
|
|
#
|
|
|
|
|
# The requirepass is not compatible with aclfile option and the ACL LOAD
|
|
|
|
|
# The requirepass is not compatable with aclfile option and the ACL LOAD
|
|
|
|
|
# command, these will cause requirepass to be ignored.
|
|
|
|
|
#
|
|
|
|
|
# requirepass foobared
|
|
|
|
|
requirepass redis@16789
|
|
|
|
|
|
|
|
|
|
# New users are initialized with restrictive permissions by default, via the
|
|
|
|
|
# equivalent of this ACL rule 'off resetkeys -@all'. Starting with Redis 6.2, it
|
|
|
|
@ -1044,7 +911,15 @@ acllog-max-len 128
|
|
|
|
|
# allchannels: grants access to all Pub/Sub channels
|
|
|
|
|
# resetchannels: revokes access to all Pub/Sub channels
|
|
|
|
|
#
|
|
|
|
|
# From Redis 7.0, acl-pubsub-default defaults to 'resetchannels' permission.
|
|
|
|
|
# To ensure backward compatibility while upgrading Redis 6.0, acl-pubsub-default
|
|
|
|
|
# defaults to the 'allchannels' permission.
|
|
|
|
|
#
|
|
|
|
|
# Future compatibility note: it is very likely that in a future version of Redis
|
|
|
|
|
# the directive's default of 'allchannels' will be changed to 'resetchannels' in
|
|
|
|
|
# order to provide better out-of-the-box Pub/Sub security. Therefore, it is
|
|
|
|
|
# recommended that you explicitly define Pub/Sub permissions for all users
|
|
|
|
|
# rather then rely on implicit default values. Once you've set explicit
|
|
|
|
|
# Pub/Sub for all existing users, you should uncomment the following line.
|
|
|
|
|
#
|
|
|
|
|
# acl-pubsub-default resetchannels
|
|
|
|
|
|
|
|
|
@ -1259,7 +1134,7 @@ replica-lazy-flush no
|
|
|
|
|
|
|
|
|
|
lazyfree-lazy-user-del no
|
|
|
|
|
|
|
|
|
|
# FLUSHDB, FLUSHALL, SCRIPT FLUSH and FUNCTION FLUSH support both asynchronous and synchronous
|
|
|
|
|
# FLUSHDB, FLUSHALL, and SCRIPT FLUSH support both asynchronous and synchronous
|
|
|
|
|
# deletion, which can be controlled by passing the [SYNC|ASYNC] flags into the
|
|
|
|
|
# commands. When neither flag is passed, this directive will be used to determine
|
|
|
|
|
# if the data should be deleted asynchronously.
|
|
|
|
@ -1304,7 +1179,7 @@ lazyfree-lazy-user-flush no
|
|
|
|
|
# Usually threading reads doesn't help much.
|
|
|
|
|
#
|
|
|
|
|
# NOTE 1: This configuration directive cannot be changed at runtime via
|
|
|
|
|
# CONFIG SET. Also, this feature currently does not work when SSL is
|
|
|
|
|
# CONFIG SET. Aso this feature currently does not work when SSL is
|
|
|
|
|
# enabled.
|
|
|
|
|
#
|
|
|
|
|
# NOTE 2: If you want to test the Redis speedup using redis-benchmark, make
|
|
|
|
@ -1322,7 +1197,7 @@ lazyfree-lazy-user-flush no
|
|
|
|
|
# attempt to have background child processes killed before all others, and
|
|
|
|
|
# replicas killed before masters.
|
|
|
|
|
#
|
|
|
|
|
# Redis supports these options:
|
|
|
|
|
# Redis supports three options:
|
|
|
|
|
#
|
|
|
|
|
# no: Don't make changes to oom-score-adj (default).
|
|
|
|
|
# yes: Alias to "relative" see below.
|
|
|
|
@ -1378,39 +1253,10 @@ disable-thp yes
|
|
|
|
|
|
|
|
|
|
appendonly no
|
|
|
|
|
|
|
|
|
|
# The base name of the append only file.
|
|
|
|
|
#
|
|
|
|
|
# Redis 7 and newer use a set of append-only files to persist the dataset
|
|
|
|
|
# and changes applied to it. There are two basic types of files in use:
|
|
|
|
|
#
|
|
|
|
|
# - Base files, which are a snapshot representing the complete state of the
|
|
|
|
|
# dataset at the time the file was created. Base files can be either in
|
|
|
|
|
# the form of RDB (binary serialized) or AOF (textual commands).
|
|
|
|
|
# - Incremental files, which contain additional commands that were applied
|
|
|
|
|
# to the dataset following the previous file.
|
|
|
|
|
#
|
|
|
|
|
# In addition, manifest files are used to track the files and the order in
|
|
|
|
|
# which they were created and should be applied.
|
|
|
|
|
#
|
|
|
|
|
# Append-only file names are created by Redis following a specific pattern.
|
|
|
|
|
# The file name's prefix is based on the 'appendfilename' configuration
|
|
|
|
|
# parameter, followed by additional information about the sequence and type.
|
|
|
|
|
#
|
|
|
|
|
# For example, if appendfilename is set to appendonly.aof, the following file
|
|
|
|
|
# names could be derived:
|
|
|
|
|
#
|
|
|
|
|
# - appendonly.aof.1.base.rdb as a base file.
|
|
|
|
|
# - appendonly.aof.1.incr.aof, appendonly.aof.2.incr.aof as incremental files.
|
|
|
|
|
# - appendonly.aof.manifest as a manifest file.
|
|
|
|
|
# The name of the append only file (default: "appendonly.aof")
|
|
|
|
|
|
|
|
|
|
appendfilename "appendonly.aof"
|
|
|
|
|
|
|
|
|
|
# For convenience, Redis stores all persistent append-only files in a dedicated
|
|
|
|
|
# directory. The name of the directory is determined by the appenddirname
|
|
|
|
|
# configuration parameter.
|
|
|
|
|
|
|
|
|
|
appenddirname "appendonlydir"
|
|
|
|
|
|
|
|
|
|
# The fsync() call tells the Operating System to actually write data on disk
|
|
|
|
|
# instead of waiting for more data in the output buffer. Some OS will really flush
|
|
|
|
|
# data on disk, some other OS will just try to do it ASAP.
|
|
|
|
@ -1450,7 +1296,7 @@ appendfsync everysec
|
|
|
|
|
# BGSAVE or BGREWRITEAOF is in progress.
|
|
|
|
|
#
|
|
|
|
|
# This means that while another child is saving, the durability of Redis is
|
|
|
|
|
# the same as "appendfsync no". In practical terms, this means that it is
|
|
|
|
|
# the same as "appendfsync none". In practical terms, this means that it is
|
|
|
|
|
# possible to lose up to 30 seconds of log in the worst scenario (with the
|
|
|
|
|
# default Linux settings).
|
|
|
|
|
#
|
|
|
|
@ -1503,69 +1349,34 @@ auto-aof-rewrite-min-size 64mb
|
|
|
|
|
# will be found.
|
|
|
|
|
aof-load-truncated yes
|
|
|
|
|
|
|
|
|
|
# Redis can create append-only base files in either RDB or AOF formats. Using
|
|
|
|
|
# the RDB format is always faster and more efficient, and disabling it is only
|
|
|
|
|
# supported for backward compatibility purposes.
|
|
|
|
|
aof-use-rdb-preamble yes
|
|
|
|
|
|
|
|
|
|
# Redis supports recording timestamp annotations in the AOF to support restoring
|
|
|
|
|
# the data from a specific point-in-time. However, using this capability changes
|
|
|
|
|
# the AOF format in a way that may not be compatible with existing AOF parsers.
|
|
|
|
|
aof-timestamp-enabled no
|
|
|
|
|
|
|
|
|
|
################################ SHUTDOWN #####################################
|
|
|
|
|
|
|
|
|
|
# Maximum time to wait for replicas when shutting down, in seconds.
|
|
|
|
|
#
|
|
|
|
|
# During shut down, a grace period allows any lagging replicas to catch up with
|
|
|
|
|
# the latest replication offset before the master exists. This period can
|
|
|
|
|
# prevent data loss, especially for deployments without configured disk backups.
|
|
|
|
|
#
|
|
|
|
|
# The 'shutdown-timeout' value is the grace period's duration in seconds. It is
|
|
|
|
|
# only applicable when the instance has replicas. To disable the feature, set
|
|
|
|
|
# the value to 0.
|
|
|
|
|
#
|
|
|
|
|
# shutdown-timeout 10
|
|
|
|
|
|
|
|
|
|
# When Redis receives a SIGINT or SIGTERM, shutdown is initiated and by default
|
|
|
|
|
# an RDB snapshot is written to disk in a blocking operation if save points are configured.
|
|
|
|
|
# The options used on signaled shutdown can include the following values:
|
|
|
|
|
# default: Saves RDB snapshot only if save points are configured.
|
|
|
|
|
# Waits for lagging replicas to catch up.
|
|
|
|
|
# save: Forces a DB saving operation even if no save points are configured.
|
|
|
|
|
# nosave: Prevents DB saving operation even if one or more save points are configured.
|
|
|
|
|
# now: Skips waiting for lagging replicas.
|
|
|
|
|
# force: Ignores any errors that would normally prevent the server from exiting.
|
|
|
|
|
# When rewriting the AOF file, Redis is able to use an RDB preamble in the
|
|
|
|
|
# AOF file for faster rewrites and recoveries. When this option is turned
|
|
|
|
|
# on the rewritten AOF file is composed of two different stanzas:
|
|
|
|
|
#
|
|
|
|
|
# Any combination of values is allowed as long as "save" and "nosave" are not set simultaneously.
|
|
|
|
|
# Example: "nosave force now"
|
|
|
|
|
# [RDB file][AOF tail]
|
|
|
|
|
#
|
|
|
|
|
# shutdown-on-sigint default
|
|
|
|
|
# shutdown-on-sigterm default
|
|
|
|
|
# When loading, Redis recognizes that the AOF file starts with the "REDIS"
|
|
|
|
|
# string and loads the prefixed RDB file, then continues loading the AOF
|
|
|
|
|
# tail.
|
|
|
|
|
aof-use-rdb-preamble yes
|
|
|
|
|
|
|
|
|
|
################ NON-DETERMINISTIC LONG BLOCKING COMMANDS #####################
|
|
|
|
|
################################ LUA SCRIPTING ###############################
|
|
|
|
|
|
|
|
|
|
# Maximum time in milliseconds for EVAL scripts, functions and in some cases
|
|
|
|
|
# modules' commands before Redis can start processing or rejecting other clients.
|
|
|
|
|
#
|
|
|
|
|
# If the maximum execution time is reached Redis will start to reply to most
|
|
|
|
|
# commands with a BUSY error.
|
|
|
|
|
# Max execution time of a Lua script in milliseconds.
|
|
|
|
|
#
|
|
|
|
|
# In this state Redis will only allow a handful of commands to be executed.
|
|
|
|
|
# For instance, SCRIPT KILL, FUNCTION KILL, SHUTDOWN NOSAVE and possibly some
|
|
|
|
|
# module specific 'allow-busy' commands.
|
|
|
|
|
# If the maximum execution time is reached Redis will log that a script is
|
|
|
|
|
# still in execution after the maximum allowed time and will start to
|
|
|
|
|
# reply to queries with an error.
|
|
|
|
|
#
|
|
|
|
|
# SCRIPT KILL and FUNCTION KILL will only be able to stop a script that did not
|
|
|
|
|
# yet call any write commands, so SHUTDOWN NOSAVE may be the only way to stop
|
|
|
|
|
# the server in the case a write command was already issued by the script when
|
|
|
|
|
# the user doesn't want to wait for the natural termination of the script.
|
|
|
|
|
# When a long running script exceeds the maximum execution time only the
|
|
|
|
|
# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
|
|
|
|
|
# used to stop a script that did not yet call any write commands. The second
|
|
|
|
|
# is the only way to shut down the server in the case a write command was
|
|
|
|
|
# already issued by the script but the user doesn't want to wait for the natural
|
|
|
|
|
# termination of the script.
|
|
|
|
|
#
|
|
|
|
|
# The default is 5 seconds. It is possible to set it to 0 or a negative value
|
|
|
|
|
# to disable this mechanism (uninterrupted execution). Note that in the past
|
|
|
|
|
# this config had a different name, which is now an alias, so both of these do
|
|
|
|
|
# the same:
|
|
|
|
|
# lua-time-limit 5000
|
|
|
|
|
# busy-reply-threshold 5000
|
|
|
|
|
# Set it to 0 or a negative value for unlimited execution without warnings.
|
|
|
|
|
lua-time-limit 5000
|
|
|
|
|
|
|
|
|
|
################################ REDIS CLUSTER ###############################
|
|
|
|
|
|
|
|
|
@ -1589,11 +1400,6 @@ aof-timestamp-enabled no
|
|
|
|
|
#
|
|
|
|
|
# cluster-node-timeout 15000
|
|
|
|
|
|
|
|
|
|
# The cluster port is the port that the cluster bus will listen for inbound connections on. When set
|
|
|
|
|
# to the default value, 0, it will be bound to the command port + 10000. Setting this value requires
|
|
|
|
|
# you to specify the cluster bus port when executing cluster meet.
|
|
|
|
|
# cluster-port 0
|
|
|
|
|
|
|
|
|
|
# A replica of a failing master will avoid to start a failover if its data
|
|
|
|
|
# looks too old.
|
|
|
|
|
#
|
|
|
|
@ -1691,7 +1497,7 @@ aof-timestamp-enabled no
|
|
|
|
|
# cluster-replica-no-failover no
|
|
|
|
|
|
|
|
|
|
# This option, when set to yes, allows nodes to serve read traffic while the
|
|
|
|
|
# cluster is in a down state, as long as it believes it owns the slots.
|
|
|
|
|
# the cluster is in a down state, as long as it believes it owns the slots.
|
|
|
|
|
#
|
|
|
|
|
# This is useful for two cases. The first case is for when an application
|
|
|
|
|
# doesn't require consistency of data during node failures or network partitions.
|
|
|
|
@ -1706,52 +1512,6 @@ aof-timestamp-enabled no
|
|
|
|
|
#
|
|
|
|
|
# cluster-allow-reads-when-down no
|
|
|
|
|
|
|
|
|
|
# This option, when set to yes, allows nodes to serve pubsub shard traffic while
|
|
|
|
|
# the cluster is in a down state, as long as it believes it owns the slots.
|
|
|
|
|
#
|
|
|
|
|
# This is useful if the application would like to use the pubsub feature even when
|
|
|
|
|
# the cluster global stable state is not OK. If the application wants to make sure only
|
|
|
|
|
# one shard is serving a given channel, this feature should be kept as yes.
|
|
|
|
|
#
|
|
|
|
|
# cluster-allow-pubsubshard-when-down yes
|
|
|
|
|
|
|
|
|
|
# Cluster link send buffer limit is the limit on the memory usage of an individual
|
|
|
|
|
# cluster bus link's send buffer in bytes. Cluster links would be freed if they exceed
|
|
|
|
|
# this limit. This is to primarily prevent send buffers from growing unbounded on links
|
|
|
|
|
# toward slow peers (E.g. PubSub messages being piled up).
|
|
|
|
|
# This limit is disabled by default. Enable this limit when 'mem_cluster_links' INFO field
|
|
|
|
|
# and/or 'send-buffer-allocated' entries in the 'CLUSTER LINKS` command output continuously increase.
|
|
|
|
|
# Minimum limit of 1gb is recommended so that cluster link buffer can fit in at least a single
|
|
|
|
|
# PubSub message by default. (client-query-buffer-limit default value is 1gb)
|
|
|
|
|
#
|
|
|
|
|
# cluster-link-sendbuf-limit 0
|
|
|
|
|
|
|
|
|
|
# Clusters can configure their announced hostname using this config. This is a common use case for
|
|
|
|
|
# applications that need to use TLS Server Name Indication (SNI) or dealing with DNS based
|
|
|
|
|
# routing. By default this value is only shown as additional metadata in the CLUSTER SLOTS
|
|
|
|
|
# command, but can be changed using 'cluster-preferred-endpoint-type' config. This value is
|
|
|
|
|
# communicated along the clusterbus to all nodes, setting it to an empty string will remove
|
|
|
|
|
# the hostname and also propagate the removal.
|
|
|
|
|
#
|
|
|
|
|
# cluster-announce-hostname ""
|
|
|
|
|
|
|
|
|
|
# Clusters can advertise how clients should connect to them using either their IP address,
|
|
|
|
|
# a user defined hostname, or by declaring they have no endpoint. Which endpoint is
|
|
|
|
|
# shown as the preferred endpoint is set by using the cluster-preferred-endpoint-type
|
|
|
|
|
# config with values 'ip', 'hostname', or 'unknown-endpoint'. This value controls how
|
|
|
|
|
# the endpoint returned for MOVED/ASKING requests as well as the first field of CLUSTER SLOTS.
|
|
|
|
|
# If the preferred endpoint type is set to hostname, but no announced hostname is set, a '?'
|
|
|
|
|
# will be returned instead.
|
|
|
|
|
#
|
|
|
|
|
# When a cluster advertises itself as having an unknown endpoint, it's indicating that
|
|
|
|
|
# the server doesn't know how clients can reach the cluster. This can happen in certain
|
|
|
|
|
# networking situations where there are multiple possible routes to the node, and the
|
|
|
|
|
# server doesn't know which one the client took. In this case, the server is expecting
|
|
|
|
|
# the client to reach out on the same endpoint it used for making the last request, but use
|
|
|
|
|
# the port provided in the response.
|
|
|
|
|
#
|
|
|
|
|
# cluster-preferred-endpoint-type ip
|
|
|
|
|
|
|
|
|
|
# In order to setup your cluster make sure to read the documentation
|
|
|
|
|
# available at https://redis.io web site.
|
|
|
|
|
|
|
|
|
@ -1839,20 +1599,6 @@ slowlog-max-len 128
|
|
|
|
|
# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
|
|
|
|
|
latency-monitor-threshold 0
|
|
|
|
|
|
|
|
|
|
################################ LATENCY TRACKING ##############################
|
|
|
|
|
|
|
|
|
|
# The Redis extended latency monitoring tracks the per command latencies and enables
|
|
|
|
|
# exporting the percentile distribution via the INFO latencystats command,
|
|
|
|
|
# and cumulative latency distributions (histograms) via the LATENCY command.
|
|
|
|
|
#
|
|
|
|
|
# By default, the extended latency monitoring is enabled since the overhead
|
|
|
|
|
# of keeping track of the command latency is very small.
|
|
|
|
|
# latency-tracking yes
|
|
|
|
|
|
|
|
|
|
# By default the exported latency percentiles via the INFO latencystats command
|
|
|
|
|
# are the p50, p99, and p999.
|
|
|
|
|
# latency-tracking-info-percentiles 50 99 99.9
|
|
|
|
|
|
|
|
|
|
############################# EVENT NOTIFICATION ##############################
|
|
|
|
|
|
|
|
|
|
# Redis can notify Pub/Sub clients about events happening in the key space.
|
|
|
|
@ -1878,7 +1624,6 @@ latency-monitor-threshold 0
|
|
|
|
|
# z Sorted set commands
|
|
|
|
|
# x Expired events (events generated every time a key expires)
|
|
|
|
|
# e Evicted events (events generated when a key is evicted for maxmemory)
|
|
|
|
|
# n New key events (Note: not included in the 'A' class)
|
|
|
|
|
# t Stream commands
|
|
|
|
|
# d Module key type events
|
|
|
|
|
# m Key-miss events (Note: It is not included in the 'A' class)
|
|
|
|
@ -1905,13 +1650,71 @@ latency-monitor-threshold 0
|
|
|
|
|
# specify at least one of K or E, no events will be delivered.
|
|
|
|
|
notify-keyspace-events ""
|
|
|
|
|
|
|
|
|
|
############################### GOPHER SERVER #################################
|
|
|
|
|
|
|
|
|
|
# Redis contains an implementation of the Gopher protocol, as specified in
|
|
|
|
|
# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt).
|
|
|
|
|
#
|
|
|
|
|
# The Gopher protocol was very popular in the late '90s. It is an alternative
|
|
|
|
|
# to the web, and the implementation both server and client side is so simple
|
|
|
|
|
# that the Redis server has just 100 lines of code in order to implement this
|
|
|
|
|
# support.
|
|
|
|
|
#
|
|
|
|
|
# What do you do with Gopher nowadays? Well Gopher never *really* died, and
|
|
|
|
|
# lately there is a movement in order for the Gopher more hierarchical content
|
|
|
|
|
# composed of just plain text documents to be resurrected. Some want a simpler
|
|
|
|
|
# internet, others believe that the mainstream internet became too much
|
|
|
|
|
# controlled, and it's cool to create an alternative space for people that
|
|
|
|
|
# want a bit of fresh air.
|
|
|
|
|
#
|
|
|
|
|
# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol
|
|
|
|
|
# as a gift.
|
|
|
|
|
#
|
|
|
|
|
# --- HOW IT WORKS? ---
|
|
|
|
|
#
|
|
|
|
|
# The Redis Gopher support uses the inline protocol of Redis, and specifically
|
|
|
|
|
# two kind of inline requests that were anyway illegal: an empty request
|
|
|
|
|
# or any request that starts with "/" (there are no Redis commands starting
|
|
|
|
|
# with such a slash). Normal RESP2/RESP3 requests are completely out of the
|
|
|
|
|
# path of the Gopher protocol implementation and are served as usual as well.
|
|
|
|
|
#
|
|
|
|
|
# If you open a connection to Redis when Gopher is enabled and send it
|
|
|
|
|
# a string like "/foo", if there is a key named "/foo" it is served via the
|
|
|
|
|
# Gopher protocol.
|
|
|
|
|
#
|
|
|
|
|
# In order to create a real Gopher "hole" (the name of a Gopher site in Gopher
|
|
|
|
|
# talking), you likely need a script like the following:
|
|
|
|
|
#
|
|
|
|
|
# https://github.com/antirez/gopher2redis
|
|
|
|
|
#
|
|
|
|
|
# --- SECURITY WARNING ---
|
|
|
|
|
#
|
|
|
|
|
# If you plan to put Redis on the internet in a publicly accessible address
|
|
|
|
|
# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance.
|
|
|
|
|
# Once a password is set:
|
|
|
|
|
#
|
|
|
|
|
# 1. The Gopher server (when enabled, not by default) will still serve
|
|
|
|
|
# content via Gopher.
|
|
|
|
|
# 2. However other commands cannot be called before the client will
|
|
|
|
|
# authenticate.
|
|
|
|
|
#
|
|
|
|
|
# So use the 'requirepass' option to protect your instance.
|
|
|
|
|
#
|
|
|
|
|
# Note that Gopher is not currently supported when 'io-threads-do-reads'
|
|
|
|
|
# is enabled.
|
|
|
|
|
#
|
|
|
|
|
# To enable Gopher support, uncomment the following line and set the option
|
|
|
|
|
# from no (the default) to yes.
|
|
|
|
|
#
|
|
|
|
|
# gopher-enabled no
|
|
|
|
|
|
|
|
|
|
############################### ADVANCED CONFIG ###############################
|
|
|
|
|
|
|
|
|
|
# Hashes are encoded using a memory efficient data structure when they have a
|
|
|
|
|
# small number of entries, and the biggest entry does not exceed a given
|
|
|
|
|
# threshold. These thresholds can be configured using the following directives.
|
|
|
|
|
hash-max-listpack-entries 512
|
|
|
|
|
hash-max-listpack-value 64
|
|
|
|
|
hash-max-ziplist-entries 512
|
|
|
|
|
hash-max-ziplist-value 64
|
|
|
|
|
|
|
|
|
|
# Lists are also encoded in a special way to save a lot of space.
|
|
|
|
|
# The number of entries allowed per internal list node can be specified
|
|
|
|
@ -1926,7 +1729,7 @@ hash-max-listpack-value 64
|
|
|
|
|
# per list node.
|
|
|
|
|
# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
|
|
|
|
|
# but if your use case is unique, adjust the settings as necessary.
|
|
|
|
|
list-max-listpack-size -2
|
|
|
|
|
list-max-ziplist-size -2
|
|
|
|
|
|
|
|
|
|
# Lists may also be compressed.
|
|
|
|
|
# Compress depth is the number of quicklist ziplist nodes from *each* side of
|
|
|
|
@ -1954,8 +1757,8 @@ set-max-intset-entries 512
|
|
|
|
|
# Similarly to hashes and lists, sorted sets are also specially encoded in
|
|
|
|
|
# order to save a lot of space. This encoding is only used when the length and
|
|
|
|
|
# elements of a sorted set are below the following limits:
|
|
|
|
|
zset-max-listpack-entries 128
|
|
|
|
|
zset-max-listpack-value 64
|
|
|
|
|
zset-max-ziplist-entries 128
|
|
|
|
|
zset-max-ziplist-value 64
|
|
|
|
|
|
|
|
|
|
# HyperLogLog sparse representation bytes limit. The limit includes the
|
|
|
|
|
# 16 bytes header. When an HyperLogLog using the sparse representation crosses
|
|
|
|
@ -2010,7 +1813,7 @@ activerehashing yes
|
|
|
|
|
# The limit can be set differently for the three different classes of clients:
|
|
|
|
|
#
|
|
|
|
|
# normal -> normal clients including MONITOR clients
|
|
|
|
|
# replica -> replica clients
|
|
|
|
|
# replica -> replica clients
|
|
|
|
|
# pubsub -> clients subscribed to at least one pubsub channel or pattern
|
|
|
|
|
#
|
|
|
|
|
# The syntax of every client-output-buffer-limit directive is the following:
|
|
|
|
@ -2034,13 +1837,6 @@ activerehashing yes
|
|
|
|
|
# Instead there is a default limit for pubsub and replica clients, since
|
|
|
|
|
# subscribers and replicas receive data in a push fashion.
|
|
|
|
|
#
|
|
|
|
|
# Note that it doesn't make sense to set the replica clients output buffer
|
|
|
|
|
# limit lower than the repl-backlog-size config (partial sync will succeed
|
|
|
|
|
# and then replica will get disconnected).
|
|
|
|
|
# Such a configuration is ignored (the size of repl-backlog-size will be used).
|
|
|
|
|
# This doesn't have memory consumption implications since the replica client
|
|
|
|
|
# will share the backlog buffers memory.
|
|
|
|
|
#
|
|
|
|
|
# Both the hard or the soft limit can be disabled by setting them to zero.
|
|
|
|
|
client-output-buffer-limit normal 0 0 0
|
|
|
|
|
client-output-buffer-limit replica 256mb 64mb 60
|
|
|
|
@ -2054,25 +1850,6 @@ client-output-buffer-limit pubsub 32mb 8mb 60
|
|
|
|
|
#
|
|
|
|
|
# client-query-buffer-limit 1gb
|
|
|
|
|
|
|
|
|
|
# In some scenarios client connections can hog up memory leading to OOM
|
|
|
|
|
# errors or data eviction. To avoid this we can cap the accumulated memory
|
|
|
|
|
# used by all client connections (all pubsub and normal clients). Once we
|
|
|
|
|
# reach that limit connections will be dropped by the server freeing up
|
|
|
|
|
# memory. The server will attempt to drop the connections using the most
|
|
|
|
|
# memory first. We call this mechanism "client eviction".
|
|
|
|
|
#
|
|
|
|
|
# Client eviction is configured using the maxmemory-clients setting as follows:
|
|
|
|
|
# 0 - client eviction is disabled (default)
|
|
|
|
|
#
|
|
|
|
|
# A memory value can be used for the client eviction threshold,
|
|
|
|
|
# for example:
|
|
|
|
|
# maxmemory-clients 1g
|
|
|
|
|
#
|
|
|
|
|
# A percentage value (between 1% and 100%) means the client eviction threshold
|
|
|
|
|
# is based on a percentage of the maxmemory setting. For example to set client
|
|
|
|
|
# eviction at 5% of maxmemory:
|
|
|
|
|
# maxmemory-clients 5%
|
|
|
|
|
|
|
|
|
|
# In the Redis protocol, bulk requests, that are, elements representing single
|
|
|
|
|
# strings, are normally limited to 512 mb. However you can change this limit
|
|
|
|
|
# here, but must be 1mb or greater
|
|
|
|
@ -2113,13 +1890,13 @@ hz 10
|
|
|
|
|
dynamic-hz yes
|
|
|
|
|
|
|
|
|
|
# When a child rewrites the AOF file, if the following option is enabled
|
|
|
|
|
# the file will be fsync-ed every 4 MB of data generated. This is useful
|
|
|
|
|
# the file will be fsync-ed every 32 MB of data generated. This is useful
|
|
|
|
|
# in order to commit the file to the disk more incrementally and avoid
|
|
|
|
|
# big latency spikes.
|
|
|
|
|
aof-rewrite-incremental-fsync yes
|
|
|
|
|
|
|
|
|
|
# When redis saves RDB file, if the following option is enabled
|
|
|
|
|
# the file will be fsync-ed every 4 MB of data generated. This is useful
|
|
|
|
|
# the file will be fsync-ed every 32 MB of data generated. This is useful
|
|
|
|
|
# in order to commit the file to the disk more incrementally and avoid
|
|
|
|
|
# big latency spikes.
|
|
|
|
|
rdb-save-incremental-fsync yes
|
|
|
|
@ -2216,7 +1993,7 @@ rdb-save-incremental-fsync yes
|
|
|
|
|
# defragmentation process. If you are not sure about what they mean it is
|
|
|
|
|
# a good idea to leave the defaults untouched.
|
|
|
|
|
|
|
|
|
|
# Active defragmentation is disabled by default
|
|
|
|
|
# Enabled active defragmentation
|
|
|
|
|
# activedefrag no
|
|
|
|
|
|
|
|
|
|
# Minimum amount of fragmentation waste to start active defrag
|
|
|
|
|