updated pkg/deb/conf/keydb.conf to use keydb name throughout

Former-commit-id: 308cf77437374f01cc40101f2f35768db7a16302
This commit is contained in:
christianEQ 2021-06-11 18:15:50 +00:00
parent 20b5272f60
commit c2655387fc

View File

@ -1,6 +1,6 @@
# Redis configuration file example. # KeyDB configuration file example.
# #
# Note that in order to read the configuration file, Redis must be # Note that in order to read the configuration file, KeyDB must be
# started with the file path as first argument: # started with the file path as first argument:
# #
# ./keydb-server /path/to/keydb.conf # ./keydb-server /path/to/keydb.conf
@ -20,12 +20,12 @@
################################## INCLUDES ################################### ################################## INCLUDES ###################################
# Include one or more other config files here. This is useful if you # Include one or more other config files here. This is useful if you
# have a standard template that goes to all Redis servers but also need # have a standard template that goes to all KeyDB servers but also need
# to customize a few per-server settings. Include files can include # to customize a few per-server settings. Include files can include
# other files, so use this wisely. # other files, so use this wisely.
# #
# Note that option "include" won't be rewritten by command "CONFIG REWRITE" # Note that option "include" won't be rewritten by command "CONFIG REWRITE"
# from admin or Redis Sentinel. Since Redis always uses the last processed # from admin or KeyDB Sentinel. Since KeyDB always uses the last processed
# line as value of a configuration directive, you'd better put includes # line as value of a configuration directive, you'd better put includes
# at the beginning of this file to avoid overwriting config change at runtime. # at the beginning of this file to avoid overwriting config change at runtime.
# #
@ -45,7 +45,7 @@
################################## NETWORK ##################################### ################################## NETWORK #####################################
# By default, if no "bind" configuration directive is specified, Redis listens # By default, if no "bind" configuration directive is specified, KeyDB listens
# for connections from all available network interfaces on the host machine. # for connections from all available network interfaces on the host machine.
# It is possible to listen to just one or multiple selected interfaces using # It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses. # the "bind" configuration directive, followed by one or more IP addresses.
@ -61,11 +61,11 @@
# bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 # bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6
# bind * -::* # like the default, all available interfaces # bind * -::* # like the default, all available interfaces
# #
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # ~~~ WARNING ~~~ If the computer running KeyDB is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the # internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the # instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only on the # following bind directive, that will force KeyDB to listen only on the
# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis # IPv4 and IPv6 (if available) loopback interface addresses (this means KeyDB
# will only be able to accept client connections from the same host that it is # will only be able to accept client connections from the same host that it is
# running on). # running on).
# #
@ -75,7 +75,7 @@
bind 127.0.0.1 ::1 bind 127.0.0.1 ::1
# Protected mode is a layer of security protection, in order to avoid that # Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited. # KeyDB instances left open on the internet are accessed and exploited.
# #
# When protected mode is on and if: # When protected mode is on and if:
# #
@ -88,13 +88,13 @@ bind 127.0.0.1 ::1
# sockets. # sockets.
# #
# By default protected mode is enabled. You should disable it only 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 # you are sure you want clients from other hosts to connect to KeyDB
# even if no authentication is configured, nor a specific set of interfaces # even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive. # are explicitly listed using the "bind" directive.
protected-mode yes protected-mode yes
# Accept connections on the specified port, default is 6379 (IANA #815344). # Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket. # If port 0 is specified KeyDB will not listen on a TCP socket.
port 6379 port 6379
# TCP listen() backlog. # TCP listen() backlog.
@ -109,7 +109,7 @@ tcp-backlog 511
# Unix socket. # Unix socket.
# #
# Specify the path for the Unix socket that will be used to listen for # Specify the path for the Unix socket that will be used to listen for
# incoming connections. There is no default, so Redis will not listen # incoming connections. There is no default, so KeyDB will not listen
# on a unix socket when not specified. # on a unix socket when not specified.
# #
# unixsocket /run/keydb.sock # unixsocket /run/keydb.sock
@ -131,8 +131,7 @@ timeout 0
# Note that to close the connection the double of the time is needed. # Note that to close the connection the double of the time is needed.
# On other kernels the period depends on the kernel configuration. # On other kernels the period depends on the kernel configuration.
# #
# A reasonable value for this option is 300 seconds, which is the new # A reasonable value for this option is 300 seconds, which is the default.
# Redis default starting with Redis 3.2.1.
tcp-keepalive 300 tcp-keepalive 300
################################# TLS/SSL ##################################### ################################# TLS/SSL #####################################
@ -156,7 +155,7 @@ tcp-keepalive 300
# #
# tls-key-file-pass secret # tls-key-file-pass secret
# Normally Redis uses the same certificate for both server functions (accepting # Normally KeyDB uses the same certificate for both server functions (accepting
# connections) and client functions (replicating from a master, establishing # connections) and client functions (replicating from a master, establishing
# cluster bus connections, etc.). # cluster bus connections, etc.).
# #
@ -178,7 +177,7 @@ tcp-keepalive 300
# tls-dh-params-file keydb.dh # tls-dh-params-file keydb.dh
# Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL # Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL
# clients and peers. Redis requires an explicit configuration of at least one # clients and peers. KeyDB requires an explicit configuration of at least one
# of these, and will not implicitly use the system wide configuration. # of these, and will not implicitly use the system wide configuration.
# #
# tls-ca-cert-file ca.crt # tls-ca-cert-file ca.crt
@ -194,14 +193,14 @@ tcp-keepalive 300
# tls-auth-clients no # tls-auth-clients no
# tls-auth-clients optional # tls-auth-clients optional
# By default, a Redis replica does not attempt to establish a TLS connection # By default, a KeyDB replica does not attempt to establish a TLS connection
# with its master. # with its master.
# #
# Use the following directive to enable TLS on replication links. # Use the following directive to enable TLS on replication links.
# #
# tls-replication yes # tls-replication yes
# By default, the Redis Cluster bus uses a plain TCP connection. To enable # By default, the KeyDB Cluster bus uses a plain TCP connection. To enable
# TLS for the bus protocol, use the following directive: # TLS for the bus protocol, use the following directive:
# #
# tls-cluster yes # tls-cluster yes
@ -251,18 +250,18 @@ tcp-keepalive 300
################################# GENERAL ##################################### ################################# GENERAL #####################################
# By default Redis does not run as a daemon. Use 'yes' if you need it. # By default KeyDB does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/keydb.pid when daemonized. # Note that KeyDB will write a pid file in /var/run/keydb.pid when daemonized.
# When Redis is supervised by upstart or systemd, this parameter has no impact. # When KeyDB is supervised by upstart or systemd, this parameter has no impact.
daemonize no daemonize no
# If you run Redis from upstart or systemd, Redis can interact with your # If you run KeyDB from upstart or systemd, KeyDB can interact with your
# supervision tree. Options: # supervision tree. Options:
# supervised no - no supervision interaction # supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode # supervised upstart - signal upstart by putting KeyDB into SIGSTOP mode
# requires "expect stop" in your upstart job config # requires "expect stop" in your upstart job config
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET # supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# on startup, and updating Redis status on a regular # on startup, and updating KeyDB status on a regular
# basis. # basis.
# supervised auto - detect upstart or systemd method based on # supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables # UPSTART_JOB or NOTIFY_SOCKET environment variables
@ -274,14 +273,14 @@ daemonize no
# #
# supervised auto # supervised auto
# If a pid file is specified, Redis writes it where specified at startup # If a pid file is specified, KeyDB writes it where specified at startup
# and removes it at exit. # and removes it at exit.
# #
# When the server runs non daemonized, no pid file is created if none is # When the server runs non daemonized, no pid file is created if none is
# specified in the configuration. When the server is daemonized, the pid file # specified in the configuration. When the server is daemonized, the pid file
# is used even if not specified, defaulting to "/var/run/keydb.pid". # is used even if not specified, defaulting to "/var/run/keydb.pid".
# #
# Creating a pid file is best effort: if Redis is not able to create it # Creating a pid file is best effort: if KeyDB is not able to create it
# nothing bad happens, the server will start and run normally. # nothing bad happens, the server will start and run normally.
# #
# Note that on modern Linux systems "/run/keydb.pid" is more conforming # Note that on modern Linux systems "/run/keydb.pid" is more conforming
@ -297,7 +296,7 @@ pidfile /var/run/keydb_6379.pid
loglevel notice loglevel notice
# Specify the log file name. Also the empty string can be used to force # Specify the log file name. Also the empty string can be used to force
# Redis to log on the standard output. Note that if you use standard # KeyDB to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null # output for logging but daemonize, logs will be sent to /dev/null
logfile /var/log/keydb/keydb-server.log logfile /var/log/keydb/keydb-server.log
@ -317,7 +316,7 @@ logfile /var/log/keydb/keydb-server.log
# crash-log-enabled no # crash-log-enabled no
# To disable the fast memory check that's run as part of the crash log, which # To disable the fast memory check that's run as part of the crash log, which
# will possibly let keydb terminate sooner, uncomment the following: # will possibly let KeyDB terminate sooner, uncomment the following:
# #
# crash-memcheck-enabled no # crash-memcheck-enabled no
@ -326,7 +325,7 @@ logfile /var/log/keydb/keydb-server.log
# dbid is a number between 0 and 'databases'-1 # dbid is a number between 0 and 'databases'-1
databases 16 databases 16
# By default Redis shows an ASCII art logo only when started to log to the # By default KeyDB shows an ASCII art logo only when started to log to the
# standard output and if the standard output is a TTY and syslog logging is # standard output and if the standard output is a TTY and syslog logging is
# disabled. Basically this means that normally a logo is displayed only in # disabled. Basically this means that normally a logo is displayed only in
# interactive sessions. # interactive sessions.
@ -335,12 +334,12 @@ databases 16
# ASCII art logo in startup logs by setting the following option to yes. # ASCII art logo in startup logs by setting the following option to yes.
always-show-logo no always-show-logo no
# By default, Redis modifies the process title (as seen in 'top' and 'ps') to # By default, KeyDB modifies the process title (as seen in 'top' and 'ps') to
# provide some runtime information. It is possible to disable this and leave # provide some runtime information. It is possible to disable this and leave
# the process name as executed by setting the following to no. # the process name as executed by setting the following to no.
set-proc-title yes set-proc-title yes
# When changing the process title, Redis uses the following template to construct # When changing the process title, KeyDB uses the following template to construct
# the modified title. # the modified title.
# #
# Template variables are specified in curly brackets. The following variables are # Template variables are specified in curly brackets. The following variables are
@ -363,7 +362,7 @@ proc-title-template "{title} {listen-addr} {server-mode}"
# #
# save <seconds> <changes> # save <seconds> <changes>
# #
# Redis will save the DB if both the given number of seconds and the given # KeyDB will save the DB if both the given number of seconds and the given
# number of write operations against the DB occurred. # number of write operations against the DB occurred.
# #
# Snapshotting can be completely disabled with a single empty string argument # Snapshotting can be completely disabled with a single empty string argument
@ -371,7 +370,7 @@ proc-title-template "{title} {listen-addr} {server-mode}"
# #
# save "" # save ""
# #
# Unless specified otherwise, by default Redis will save the DB: # Unless specified otherwise, by default KeyDB will save the DB:
# * After 3600 seconds (an hour) if at least 1 key changed # * After 3600 seconds (an hour) if at least 1 key changed
# * After 300 seconds (5 minutes) if at least 100 keys changed # * After 300 seconds (5 minutes) if at least 100 keys changed
# * After 60 seconds if at least 10000 keys changed # * After 60 seconds if at least 10000 keys changed
@ -382,17 +381,17 @@ proc-title-template "{title} {listen-addr} {server-mode}"
# save 300 100 # save 300 100
# save 60 10000 # save 60 10000
# By default Redis will stop accepting writes if RDB snapshots are enabled # By default KeyDB will stop accepting writes if RDB snapshots are enabled
# (at least one save point) and the latest background save failed. # (at least one save point) and the latest background save failed.
# This will make the user aware (in a hard way) that data is not persisting # This will make the user aware (in a hard way) that data is not persisting
# on disk properly, otherwise chances are that no one will notice and some # on disk properly, otherwise chances are that no one will notice and some
# disaster will happen. # disaster will happen.
# #
# If the background saving process will start working again Redis will # If the background saving process will start working again KeyDB will
# automatically allow writes again. # automatically allow writes again.
# #
# However if you have setup your proper monitoring of the Redis server # However if you have setup your proper monitoring of the KeyDB server
# and persistence, you may want to disable this feature so that Redis will # and persistence, you may want to disable this feature so that KeyDB will
# continue to work as usual even if there are problems with disk, # continue to work as usual even if there are problems with disk,
# permissions, and so forth. # permissions, and so forth.
stop-writes-on-bgsave-error yes stop-writes-on-bgsave-error yes
@ -455,18 +454,18 @@ dir /var/lib/keydb
################################# REPLICATION ################################# ################################# REPLICATION #################################
# Master-Replica replication. Use replicaof to make a Redis instance a copy of # Master-Replica replication. Use replicaof to make a KeyDB instance a copy of
# another Redis server. A few things to understand ASAP about Redis replication. # another KeyDB server. A few things to understand ASAP about KeyDB replication.
# #
# +------------------+ +---------------+ # +------------------+ +---------------+
# | Master | ---> | Replica | # | Master | ---> | Replica |
# | (receive writes) | | (exact copy) | # | (receive writes) | | (exact copy) |
# +------------------+ +---------------+ # +------------------+ +---------------+
# #
# 1) Redis replication is asynchronous, but you can configure a master to # 1) KeyDB replication is asynchronous, but you can configure a master to
# stop accepting writes if it appears to be not connected with at least # stop accepting writes if it appears to be not connected with at least
# a given number of replicas. # a given number of replicas.
# 2) Redis replicas are able to perform a partial resynchronization with the # 2) KeyDB replicas are able to perform a partial resynchronization with the
# master if the replication link is lost for a relatively small amount of # master if the replication link is lost for a relatively small amount of
# time. You may want to configure the replication backlog size (see the next # time. You may want to configure the replication backlog size (see the next
# sections of this file) with a sensible value depending on your needs. # sections of this file) with a sensible value depending on your needs.
@ -483,7 +482,7 @@ dir /var/lib/keydb
# #
# masterauth <master-password> # masterauth <master-password>
# #
# However this is not enough if you are using Redis ACLs (for Redis version # However this is not enough if you are using KeyDB ACLs (for KeyDB version
# 6 or greater), and the default user is not capable of running the PSYNC # 6 or greater), and the default user is not capable of running the PSYNC
# command and/or other commands needed for replication. In this case it's # command and/or other commands needed for replication. In this case it's
# better to configure a special user to use with replication, and specify the # better to configure a special user to use with replication, and specify the
@ -515,7 +514,7 @@ replica-serve-stale-data yes
# may also cause problems if clients are writing to it because of a # may also cause problems if clients are writing to it because of a
# misconfiguration. # misconfiguration.
# #
# Since Redis 2.6 by default replicas are read-only. # Since KeyDB 2.6 by default replicas are read-only.
# #
# Note: read only replicas are not designed to be exposed to untrusted clients # Note: read only replicas are not designed to be exposed to untrusted clients
# on the internet. It's just a protection layer against misuse of the instance. # on the internet. It's just a protection layer against misuse of the instance.
@ -536,10 +535,10 @@ replica-read-only yes
# synchronization". An RDB file is transmitted from the master to the replicas. # synchronization". An RDB file is transmitted from the master to the replicas.
# The transmission can happen in two different ways: # The transmission can happen in two different ways:
# #
# 1) Disk-backed: The Redis master creates a new process that writes the RDB # 1) Disk-backed: The KeyDB master creates a new process that writes the RDB
# file on disk. Later the file is transferred by the parent # file on disk. Later the file is transferred by the parent
# process to the replicas incrementally. # process to the replicas incrementally.
# 2) Diskless: The Redis master creates a new process that directly writes the # 2) Diskless: The KeyDB master creates a new process that directly writes the
# RDB file to replica sockets, without touching the disk at all. # RDB file to replica sockets, without touching the disk at all.
# #
# With disk-backed replication, while the RDB file is generated, more replicas # With disk-backed replication, while the RDB file is generated, more replicas
@ -571,8 +570,8 @@ repl-diskless-sync-delay 5
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# WARNING: RDB diskless load is experimental. Since in this setup the replica # 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 # does not immediately store an RDB on disk, it may cause data loss during
# failovers. RDB diskless load + Redis modules not handling I/O reads may also # failovers. RDB diskless load + KeyDB modules not handling I/O reads may also
# cause Redis to abort in case of I/O errors during the initial synchronization # cause KeyDB to abort in case of I/O errors during the initial synchronization
# stage with the master. Use only if you know what you are doing. # stage with the master. Use only if you know what you are doing.
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# #
@ -615,7 +614,7 @@ repl-diskless-load disabled
# Disable TCP_NODELAY on the replica socket after SYNC? # Disable TCP_NODELAY on the replica socket after SYNC?
# #
# If you select "yes" Redis will use a smaller number of TCP packets and # If you select "yes" KeyDB will use a smaller number of TCP packets and
# less bandwidth to send data to replicas. But this can add a delay for # less bandwidth to send data to replicas. But this can add a delay for
# the data to appear on the replica side, up to 40 milliseconds with # the data to appear on the replica side, up to 40 milliseconds with
# Linux kernels using a default configuration. # Linux kernels using a default configuration.
@ -654,8 +653,8 @@ repl-disable-tcp-nodelay no
# #
# repl-backlog-ttl 3600 # repl-backlog-ttl 3600
# The replica priority is an integer number published by Redis in the INFO output. # The replica priority is an integer number published by KeyDB in the INFO output.
# It is used by Redis Sentinel in order to select a replica to promote into a # It is used by KeyDB Sentinel in order to select a replica to promote into a
# master if the master is no longer working correctly. # master if the master is no longer working correctly.
# #
# A replica with a low priority number is considered better for promotion, so # A replica with a low priority number is considered better for promotion, so
@ -664,16 +663,16 @@ repl-disable-tcp-nodelay no
# #
# However a special priority of 0 marks the replica as not able to perform the # However a special priority of 0 marks the replica as not able to perform the
# role of master, so a replica with priority of 0 will never be selected by # role of master, so a replica with priority of 0 will never be selected by
# Redis Sentinel for promotion. # KeyDB Sentinel for promotion.
# #
# By default the priority is 100. # By default the priority is 100.
replica-priority 100 replica-priority 100
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# By default, Redis Sentinel includes all replicas in its reports. A replica # By default, KeyDB Sentinel includes all replicas in its reports. A replica
# can be excluded from Redis Sentinel's announcements. An unannounced replica # can be excluded from KeyDB Sentinel's announcements. An unannounced replica
# will be ignored by the 'sentinel replicas <master>' command and won't be # will be ignored by the 'sentinel replicas <master>' command and won't be
# exposed to Redis Sentinel's clients. # exposed to KeyDB Sentinel's clients.
# #
# This option does not change the behavior of replica-priority. Even with # This option does not change the behavior of replica-priority. Even with
# replica-announced set to 'no', the replica can be promoted to master. To # replica-announced set to 'no', the replica can be promoted to master. To
@ -703,10 +702,10 @@ replica-priority 100
# By default min-replicas-to-write is set to 0 (feature disabled) and # By default min-replicas-to-write is set to 0 (feature disabled) and
# min-replicas-max-lag is set to 10. # min-replicas-max-lag is set to 10.
# A Redis master is able to list the address and port of the attached # A KeyDB master is able to list the address and port of the attached
# replicas in different ways. For example the "INFO replication" section # replicas in different ways. For example the "INFO replication" section
# offers this information, which is used, among other tools, by # offers this information, which is used, among other tools, by
# Redis Sentinel in order to discover replica instances. # KeyDB Sentinel in order to discover replica instances.
# Another place where this info is available is in the output of the # Another place where this info is available is in the output of the
# "ROLE" command of a master. # "ROLE" command of a master.
# #
@ -734,7 +733,7 @@ replica-priority 100
############################### KEYS TRACKING ################################# ############################### KEYS TRACKING #################################
# Redis implements server assisted support for client side caching of values. # KeyDB implements server assisted support for client side caching of values.
# This is implemented using an invalidation table that remembers, using # This is implemented using an invalidation table that remembers, using
# a radix key indexed by key name, what clients have which keys. In turn # a radix key indexed by key name, what clients have which keys. In turn
# this is used in order to send invalidation messages to clients. Please # this is used in order to send invalidation messages to clients. Please
@ -743,22 +742,22 @@ replica-priority 100
# https://redis.io/topics/client-side-caching # https://redis.io/topics/client-side-caching
# #
# When tracking is enabled for a client, all the read only queries are assumed # When tracking is enabled for a client, all the read only queries are assumed
# to be cached: this will force Redis to store information in the invalidation # to be cached: this will force KeyDB to store information in the invalidation
# table. When keys are modified, such information is flushed away, and # table. When keys are modified, such information is flushed away, and
# invalidation messages are sent to the clients. However if the workload is # invalidation messages are sent to the clients. However if the workload is
# heavily dominated by reads, Redis could use more and more memory in order # heavily dominated by reads, KeyDB could use more and more memory in order
# to track the keys fetched by many clients. # to track the keys fetched by many clients.
# #
# For this reason it is possible to configure a maximum fill value for the # For this reason it is possible to configure a maximum fill value for the
# invalidation table. By default it is set to 1M of keys, and once this limit # invalidation table. By default it is set to 1M of keys, and once this limit
# is reached, Redis will start to evict keys in the invalidation table # is reached, KeyDB will start to evict keys in the invalidation table
# even if they were not modified, just to reclaim memory: this will in turn # even if they were not modified, just to reclaim memory: this will in turn
# force the clients to invalidate the cached values. Basically the table # force the clients to invalidate the cached values. Basically the table
# maximum size is a trade off between the memory you want to spend server # maximum size is a trade off between the memory you want to spend server
# side to track information about who cached what, and the ability of clients # side to track information about who cached what, and the ability of clients
# to retain cached objects in memory. # to retain cached objects in memory.
# #
# If you set the value to 0, it means there are no limits, and Redis will # If you set the value to 0, it means there are no limits, and KeyDB will
# retain as many keys as needed in the invalidation table. # retain as many keys as needed in the invalidation table.
# In the "stats" INFO section, you can find information about the number of # In the "stats" INFO section, you can find information about the number of
# keys in the invalidation table at every given moment. # keys in the invalidation table at every given moment.
@ -770,7 +769,7 @@ replica-priority 100
################################## SECURITY ################################### ################################## SECURITY ###################################
# Warning: since Redis is pretty fast, an outside user can try up to # Warning: since KeyDB is pretty fast, an outside user can try up to
# 1 million passwords per second against a modern box. This means that you # 1 million passwords per second against a modern box. This means that you
# should use very strong passwords, otherwise they will be very easy to break. # should use very strong passwords, otherwise they will be very easy to break.
# Note that because the password is really a shared secret between the client # Note that because the password is really a shared secret between the client
@ -778,7 +777,7 @@ replica-priority 100
# can be easily a long string from /dev/urandom or whatever, so by using a # can be easily a long string from /dev/urandom or whatever, so by using a
# long and unguessable password no brute force attack will be possible. # long and unguessable password no brute force attack will be possible.
# Redis ACL users are defined in the following format: # KeyDB ACL users are defined in the following format:
# #
# user <username> ... acl rules ... # user <username> ... acl rules ...
# #
@ -807,7 +806,7 @@ replica-priority 100
# +@<category> Allow the execution of all the commands in such category # +@<category> Allow the execution of all the commands in such category
# with valid categories are like @admin, @set, @sortedset, ... # with valid categories are like @admin, @set, @sortedset, ...
# and so forth, see the full list in the server.c file where # and so forth, see the full list in the server.c file where
# the Redis command table is described and defined. # the KeyDB command table is described and defined.
# The special category @all means all the commands, but currently # The special category @all means all the commands, but currently
# present in the server, and that will be loaded in the future # present in the server, and that will be loaded in the future
# via modules. # via modules.
@ -891,7 +890,7 @@ acllog-max-len 128
# #
# aclfile /etc/keydb/users.acl # aclfile /etc/keydb/users.acl
# IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility # IMPORTANT NOTE: starting with KeyDB 6 "requirepass" is just a compatibility
# layer on top of the new ACL system. The option effect will be just setting # layer on top of the new ACL system. The option effect will be just setting
# the password for the default user. Clients will still authenticate using # the password for the default user. Clients will still authenticate using
# AUTH <password> as usually, or more explicitly with AUTH default <password> # AUTH <password> as usually, or more explicitly with AUTH default <password>
@ -903,7 +902,7 @@ acllog-max-len 128
# requirepass foobared # requirepass foobared
# New users are initialized with restrictive permissions by default, via the # 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 # equivalent of this ACL rule 'off resetkeys -@all'. Starting with KeyDB 6.2, it
# is possible to manage access to Pub/Sub channels with ACL rules as well. The # is possible to manage access to Pub/Sub channels with ACL rules as well. The
# default Pub/Sub channels permission if new users is controlled by the # default Pub/Sub channels permission if new users is controlled by the
# acl-pubsub-default configuration directive, which accepts one of these values: # acl-pubsub-default configuration directive, which accepts one of these values:
@ -911,10 +910,10 @@ acllog-max-len 128
# allchannels: grants access to all Pub/Sub channels # allchannels: grants access to all Pub/Sub channels
# resetchannels: revokes access to all Pub/Sub channels # resetchannels: revokes access to all Pub/Sub channels
# #
# To ensure backward compatibility while upgrading Redis 6.0, acl-pubsub-default # To ensure backward compatibility while upgrading KeyDB 6.0, acl-pubsub-default
# defaults to the 'allchannels' permission. # defaults to the 'allchannels' permission.
# #
# Future compatibility note: it is very likely that in a future version of Redis # Future compatibility note: it is very likely that in a future version of KeyDB
# the directive's default of 'allchannels' will be changed to 'resetchannels' in # 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 # 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 # recommended that you explicitly define Pub/Sub permissions for all users
@ -951,15 +950,15 @@ acllog-max-len 128
################################### CLIENTS #################################### ################################### CLIENTS ####################################
# Set the max number of connected clients at the same time. By default # Set the max number of connected clients at the same time. By default
# this limit is set to 10000 clients, however if the Redis server is not # this limit is set to 10000 clients, however if the KeyDB server is not
# able to configure the process file limit to allow for the specified limit # able to configure the process file limit to allow for the specified limit
# the max number of allowed clients is set to the current file limit # the max number of allowed clients is set to the current file limit
# minus 32 (as Redis reserves a few file descriptors for internal uses). # minus 32 (as KeyDB reserves a few file descriptors for internal uses).
# #
# Once the limit is reached Redis will close all the new connections sending # Once the limit is reached KeyDB will close all the new connections sending
# an error 'max number of clients reached'. # an error 'max number of clients reached'.
# #
# IMPORTANT: When Redis Cluster is used, the max number of connections is also # IMPORTANT: When KeyDB Cluster is used, the max number of connections is also
# shared with the cluster bus: every node in the cluster will use two # shared with the cluster bus: every node in the cluster will use two
# connections, one incoming and another outgoing. It is important to size the # connections, one incoming and another outgoing. It is important to size the
# limit accordingly in case of very large clusters. # limit accordingly in case of very large clusters.
@ -969,15 +968,15 @@ acllog-max-len 128
############################## MEMORY MANAGEMENT ################################ ############################## MEMORY MANAGEMENT ################################
# Set a memory usage limit to the specified amount of bytes. # Set a memory usage limit to the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys # When the memory limit is reached KeyDB will try to remove keys
# according to the eviction policy selected (see maxmemory-policy). # according to the eviction policy selected (see maxmemory-policy).
# #
# If Redis can't remove keys according to the policy, or if the policy is # If KeyDB can't remove keys according to the policy, or if the policy is
# set to 'noeviction', Redis will start to reply with errors to commands # set to 'noeviction', KeyDB will start to reply with errors to commands
# that would use more memory, like SET, LPUSH, and so on, and will continue # that would use more memory, like SET, LPUSH, and so on, and will continue
# to reply to read-only commands like GET. # to reply to read-only commands like GET.
# #
# This option is usually useful when using Redis as an LRU or LFU cache, or to # This option is usually useful when using KeyDB as an LRU or LFU cache, or to
# set a hard memory limit for an instance (using the 'noeviction' policy). # set a hard memory limit for an instance (using the 'noeviction' policy).
# #
# WARNING: If you have replicas attached to an instance with maxmemory on, # WARNING: If you have replicas attached to an instance with maxmemory on,
@ -993,7 +992,7 @@ acllog-max-len 128
# #
# maxmemory <bytes> # maxmemory <bytes>
# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory # MAXMEMORY POLICY: how KeyDB will select what to remove when maxmemory
# is reached. You can select among five behaviors: # is reached. You can select among five behaviors:
# #
# volatile-lru -> Evict using approximated LRU among the keys with an expire set. # volatile-lru -> Evict using approximated LRU among the keys with an expire set.
@ -1012,7 +1011,7 @@ acllog-max-len 128
# randomized algorithms. # randomized algorithms.
# #
# Note: with any of the above policies, when there are no suitable keys for # Note: with any of the above policies, when there are no suitable keys for
# eviction, Redis will return an error on write operations that require # eviction, KeyDB will return an error on write operations that require
# more memory. These are usually commands that create new keys, add data or # more memory. These are usually commands that create new keys, add data or
# modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE, # modify existing keys. A few examples are: SET, INCR, HSET, LPUSH, SUNIONSTORE,
# SORT (due to the STORE argument), and EXEC (if the transaction includes any # SORT (due to the STORE argument), and EXEC (if the transaction includes any
@ -1024,7 +1023,7 @@ acllog-max-len 128
# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated # LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
# algorithms (in order to save memory), so you can tune it for speed or # algorithms (in order to save memory), so you can tune it for speed or
# accuracy. By default Redis will check five keys and pick the one that was # accuracy. By default KeyDB will check five keys and pick the one that was
# used least recently, you can change the sample size using the following # used least recently, you can change the sample size using the following
# configuration directive. # configuration directive.
# #
@ -1041,7 +1040,7 @@ acllog-max-len 128
# #
# maxmemory-eviction-tenacity 10 # maxmemory-eviction-tenacity 10
# Starting from Redis 5, by default a replica will ignore its maxmemory setting # Starting from KeyDB 5, by default a replica will ignore its maxmemory setting
# (unless it is promoted to master after a failover or manually). It means # (unless it is promoted to master after a failover or manually). It means
# that the eviction of keys will be just handled by the master, sending the # that the eviction of keys will be just handled by the master, sending the
# DEL commands to the replica as keys evict in the master side. # DEL commands to the replica as keys evict in the master side.
@ -1061,7 +1060,7 @@ acllog-max-len 128
# #
# replica-ignore-maxmemory yes # replica-ignore-maxmemory yes
# Redis reclaims expired keys in two ways: upon access when those keys are # KeyDB reclaims expired keys in two ways: upon access when those keys are
# found to be expired, and also in background, in what is called the # found to be expired, and also in background, in what is called the
# "active expire key". The key space is slowly and interactively scanned # "active expire key". The key space is slowly and interactively scanned
# looking for expired keys to reclaim, so that it is possible to free memory # looking for expired keys to reclaim, so that it is possible to free memory
@ -1080,16 +1079,16 @@ acllog-max-len 128
############################# LAZY FREEING #################################### ############################# LAZY FREEING ####################################
# Redis has two primitives to delete keys. One is called DEL and is a blocking # KeyDB has two primitives to delete keys. One is called DEL and is a blocking
# deletion of the object. It means that the server stops processing new commands # deletion of the object. It means that the server stops processing new commands
# in order to reclaim all the memory associated with an object in a synchronous # in order to reclaim all the memory associated with an object in a synchronous
# way. If the key deleted is associated with a small object, the time needed # way. If the key deleted is associated with a small object, the time needed
# in order to execute the DEL command is very small and comparable to most other # in order to execute the DEL command is very small and comparable to most other
# O(1) or O(log_N) commands in Redis. However if the key is associated with an # O(1) or O(log_N) commands in KeyDB. However if the key is associated with an
# aggregated value containing millions of elements, the server can block for # aggregated value containing millions of elements, the server can block for
# a long time (even seconds) in order to complete the operation. # a long time (even seconds) in order to complete the operation.
# #
# For the above reasons Redis also offers non blocking deletion primitives # For the above reasons KeyDB also offers non blocking deletion primitives
# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and # such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and
# FLUSHDB commands, in order to reclaim memory in background. Those commands # FLUSHDB commands, in order to reclaim memory in background. Those commands
# are executed in constant time. Another thread will incrementally free the # are executed in constant time. Another thread will incrementally free the
@ -1097,9 +1096,9 @@ acllog-max-len 128
# #
# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled. # DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled.
# It's up to the design of the application to understand when it is a good # It's up to the design of the application to understand when it is a good
# idea to use one or the other. However the Redis server sometimes has to # idea to use one or the other. However the KeyDB server sometimes has to
# delete keys or flush the whole database as a side effect of other operations. # delete keys or flush the whole database as a side effect of other operations.
# Specifically Redis deletes objects independently of a user call in the # Specifically KeyDB deletes objects independently of a user call in the
# following scenarios: # following scenarios:
# #
# 1) On eviction, because of the maxmemory and maxmemory policy configurations, # 1) On eviction, because of the maxmemory and maxmemory policy configurations,
@ -1143,21 +1142,21 @@ lazyfree-lazy-user-flush no
################################ THREADED I/O ################################# ################################ THREADED I/O #################################
# Redis is mostly single threaded, however there are certain threaded # KeyDB is mostly single threaded, however there are certain threaded
# operations such as UNLINK, slow I/O accesses and other things that are # operations such as UNLINK, slow I/O accesses and other things that are
# performed on side threads. # performed on side threads.
# #
# Now it is also possible to handle Redis clients socket reads and writes # Now it is also possible to handle KeyDB clients socket reads and writes
# in different I/O threads. Since especially writing is so slow, normally # in different I/O threads. Since especially writing is so slow, normally
# Redis users use pipelining in order to speed up the Redis performances per # KeyDB users use pipelining in order to speed up the KeyDB performances per
# core, and spawn multiple instances in order to scale more. Using I/O # core, and spawn multiple instances in order to scale more. Using I/O
# threads it is possible to easily speedup two times Redis without resorting # threads it is possible to easily speedup two times KeyDB without resorting
# to pipelining nor sharding of the instance. # to pipelining nor sharding of the instance.
# #
# By default threading is disabled, we suggest enabling it only in machines # By default threading is disabled, we suggest enabling it only in machines
# that have at least 4 or more cores, leaving at least one spare core. # that have at least 4 or more cores, leaving at least one spare core.
# Using more than 8 threads is unlikely to help much. We also recommend using # Using more than 8 threads is unlikely to help much. We also recommend using
# threaded I/O only if you actually have performance problems, with Redis # threaded I/O only if you actually have performance problems, with KeyDB
# instances being able to use a quite big percentage of CPU time, otherwise # instances being able to use a quite big percentage of CPU time, otherwise
# there is no point in using this feature. # there is no point in using this feature.
# #
@ -1182,9 +1181,9 @@ lazyfree-lazy-user-flush no
# CONFIG SET. Aso this feature currently does not work when SSL is # CONFIG SET. Aso this feature currently does not work when SSL is
# enabled. # enabled.
# #
# NOTE 2: If you want to test the Redis speedup using keydb-benchmark, make # NOTE 2: If you want to test the KeyDB speedup using keydb-benchmark, make
# sure you also run the benchmark itself in threaded mode, using the # sure you also run the benchmark itself in threaded mode, using the
# --threads option to match the number of Redis threads, otherwise you'll not # --threads option to match the number of KeyDB threads, otherwise you'll not
# be able to notice the improvements. # be able to notice the improvements.
############################ KERNEL OOM CONTROL ############################## ############################ KERNEL OOM CONTROL ##############################
@ -1192,12 +1191,12 @@ lazyfree-lazy-user-flush no
# On Linux, it is possible to hint the kernel OOM killer on what processes # On Linux, it is possible to hint the kernel OOM killer on what processes
# should be killed first when out of memory. # should be killed first when out of memory.
# #
# Enabling this feature makes Redis actively control the oom_score_adj value # Enabling this feature makes KeyDB actively control the oom_score_adj value
# for all its processes, depending on their role. The default scores will # for all its processes, depending on their role. The default scores will
# attempt to have background child processes killed before all others, and # attempt to have background child processes killed before all others, and
# replicas killed before masters. # replicas killed before masters.
# #
# Redis supports three options: # KeyDB supports three options:
# #
# no: Don't make changes to oom-score-adj (default). # no: Don't make changes to oom-score-adj (default).
# yes: Alias to "relative" see below. # yes: Alias to "relative" see below.
@ -1224,7 +1223,7 @@ oom-score-adj-values 0 200 800
# Usually the kernel Transparent Huge Pages control is set to "madvise" or # Usually the kernel Transparent Huge Pages control is set to "madvise" or
# or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which # or "never" by default (/sys/kernel/mm/transparent_hugepage/enabled), in which
# case this config has no effect. On systems in which it is set to "always", # case this config has no effect. On systems in which it is set to "always",
# keydb will attempt to disable it specifically for the keydb process in order # KeyDB will attempt to disable it specifically for the keydb process in order
# to avoid latency problems specifically with fork(2) and CoW. # to avoid latency problems specifically with fork(2) and CoW.
# If for some reason you prefer to keep it enabled, you can set this config to # If for some reason you prefer to keep it enabled, you can set this config to
# "no" and the kernel global to "always". # "no" and the kernel global to "always".
@ -1233,20 +1232,20 @@ disable-thp yes
############################## APPEND ONLY MODE ############################### ############################## APPEND ONLY MODE ###############################
# By default Redis asynchronously dumps the dataset on disk. This mode is # By default KeyDB asynchronously dumps the dataset on disk. This mode is
# good enough in many applications, but an issue with the Redis process or # good enough in many applications, but an issue with the KeyDB process or
# a power outage may result into a few minutes of writes lost (depending on # a power outage may result into a few minutes of writes lost (depending on
# the configured save points). # the configured save points).
# #
# The Append Only File is an alternative persistence mode that provides # The Append Only File is an alternative persistence mode that provides
# much better durability. For instance using the default data fsync policy # much better durability. For instance using the default data fsync policy
# (see later in the config file) Redis can lose just one second of writes in a # (see later in the config file) KeyDB can lose just one second of writes in a
# dramatic event like a server power outage, or a single write if something # dramatic event like a server power outage, or a single write if something
# wrong with the Redis process itself happens, but the operating system is # wrong with the KeyDB process itself happens, but the operating system is
# still running correctly. # still running correctly.
# #
# AOF and RDB persistence can be enabled at the same time without problems. # AOF and RDB persistence can be enabled at the same time without problems.
# If the AOF is enabled on startup Redis will load the AOF, that is the file # If the AOF is enabled on startup KeyDB will load the AOF, that is the file
# with the better durability guarantees. # with the better durability guarantees.
# #
# Please check https://redis.io/topics/persistence for more information. # Please check https://redis.io/topics/persistence for more information.
@ -1261,7 +1260,7 @@ appendfilename "appendonly.aof"
# instead of waiting for more data in the output buffer. Some OS will really flush # 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. # data on disk, some other OS will just try to do it ASAP.
# #
# Redis supports three different modes: # KeyDB supports three different modes:
# #
# no: don't fsync, just let the OS flush the data when it wants. Faster. # no: don't fsync, just let the OS flush the data when it wants. Faster.
# always: fsync after every write to the append only log. Slow, Safest. # always: fsync after every write to the append only log. Slow, Safest.
@ -1287,7 +1286,7 @@ appendfsync everysec
# When the AOF fsync policy is set to always or everysec, and a background # When the AOF fsync policy is set to always or everysec, and a background
# saving process (a background save or AOF log background rewriting) is # saving process (a background save or AOF log background rewriting) is
# performing a lot of I/O against the disk, in some Linux configurations # performing a lot of I/O against the disk, in some Linux configurations
# Redis may block too long on the fsync() call. Note that there is no fix for # KeyDB may block too long on the fsync() call. Note that there is no fix for
# this currently, as even performing fsync in a different thread will block # this currently, as even performing fsync in a different thread will block
# our synchronous write(2) call. # our synchronous write(2) call.
# #
@ -1295,7 +1294,7 @@ appendfsync everysec
# that will prevent fsync() from being called in the main process while a # that will prevent fsync() from being called in the main process while a
# BGSAVE or BGREWRITEAOF is in progress. # BGSAVE or BGREWRITEAOF is in progress.
# #
# This means that while another child is saving, the durability of Redis is # This means that while another child is saving, the durability of KeyDB is
# the same as "appendfsync none". 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 # possible to lose up to 30 seconds of log in the worst scenario (with the
# default Linux settings). # default Linux settings).
@ -1306,10 +1305,10 @@ appendfsync everysec
no-appendfsync-on-rewrite no no-appendfsync-on-rewrite no
# Automatic rewrite of the append only file. # Automatic rewrite of the append only file.
# Redis is able to automatically rewrite the log file implicitly calling # KeyDB is able to automatically rewrite the log file implicitly calling
# BGREWRITEAOF when the AOF log size grows by the specified percentage. # BGREWRITEAOF when the AOF log size grows by the specified percentage.
# #
# This is how it works: Redis remembers the size of the AOF file after the # This is how it works: KeyDB remembers the size of the AOF file after the
# latest rewrite (if no rewrite has happened since the restart, the size of # latest rewrite (if no rewrite has happened since the restart, the size of
# the AOF at startup is used). # the AOF at startup is used).
# #
@ -1325,19 +1324,19 @@ no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100 auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb auto-aof-rewrite-min-size 64mb
# An AOF file may be found to be truncated at the end during the Redis # An AOF file may be found to be truncated at the end during the KeyDB
# startup process, when the AOF data gets loaded back into memory. # startup process, when the AOF data gets loaded back into memory.
# This may happen when the system where Redis is running # This may happen when the system where KeyDB is running
# crashes, especially when an ext4 filesystem is mounted without the # crashes, especially when an ext4 filesystem is mounted without the
# data=ordered option (however this can't happen when Redis itself # data=ordered option (however this can't happen when KeyDB itself
# crashes or aborts but the operating system still works correctly). # crashes or aborts but the operating system still works correctly).
# #
# Redis can either exit with an error when this happens, or load as much # KeyDB can either exit with an error when this happens, or load as much
# data as possible (the default now) and start if the AOF file is found # data as possible (the default now) and start if the AOF file is found
# to be truncated at the end. The following option controls this behavior. # to be truncated at the end. The following option controls this behavior.
# #
# If aof-load-truncated is set to yes, a truncated AOF file is loaded and # If aof-load-truncated is set to yes, a truncated AOF file is loaded and
# the Redis server starts emitting a log to inform the user of the event. # the KeyDB server starts emitting a log to inform the user of the event.
# Otherwise if the option is set to no, the server aborts with an error # Otherwise if the option is set to no, the server aborts with an error
# and refuses to start. When the option is set to no, the user requires # and refuses to start. When the option is set to no, the user requires
# to fix the AOF file using the "keydb-check-aof" utility before to restart # to fix the AOF file using the "keydb-check-aof" utility before to restart
@ -1345,17 +1344,17 @@ auto-aof-rewrite-min-size 64mb
# #
# Note that if the AOF file will be found to be corrupted in the middle # Note that if the AOF file will be found to be corrupted in the middle
# the server will still exit with an error. This option only applies when # the server will still exit with an error. This option only applies when
# Redis will try to read more data from the AOF file but not enough bytes # KeyDB will try to read more data from the AOF file but not enough bytes
# will be found. # will be found.
aof-load-truncated yes aof-load-truncated yes
# When rewriting the AOF file, Redis is able to use an RDB preamble in the # When rewriting the AOF file, KeyDB is able to use an RDB preamble in the
# AOF file for faster rewrites and recoveries. When this option is turned # AOF file for faster rewrites and recoveries. When this option is turned
# on the rewritten AOF file is composed of two different stanzas: # on the rewritten AOF file is composed of two different stanzas:
# #
# [RDB file][AOF tail] # [RDB file][AOF tail]
# #
# When loading, Redis recognizes that the AOF file starts with the "REDIS" # When loading, KeyDB recognizes that the AOF file starts with the "REDIS"
# string and loads the prefixed RDB file, then continues loading the AOF # string and loads the prefixed RDB file, then continues loading the AOF
# tail. # tail.
aof-use-rdb-preamble yes aof-use-rdb-preamble yes
@ -1364,7 +1363,7 @@ aof-use-rdb-preamble yes
# Max execution time of a Lua script in milliseconds. # Max execution time of a Lua script in milliseconds.
# #
# If the maximum execution time is reached Redis will log that a script is # If the maximum execution time is reached KeyDB will log that a script is
# still in execution after the maximum allowed time and will start to # still in execution after the maximum allowed time and will start to
# reply to queries with an error. # reply to queries with an error.
# #
@ -1378,23 +1377,23 @@ aof-use-rdb-preamble yes
# Set it to 0 or a negative value for unlimited execution without warnings. # Set it to 0 or a negative value for unlimited execution without warnings.
lua-time-limit 5000 lua-time-limit 5000
################################ REDIS CLUSTER ############################### ################################ KEYDB CLUSTER ###############################
# #
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however # WARNING EXPERIMENTAL: KeyDB Cluster is considered to be stable code, however
# in order to mark it as "mature" we need to wait for a non trivial percentage # in order to mark it as "mature" we need to wait for a non trivial percentage
# of users to deploy it in production. # of users to deploy it in production.
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# #
# Normal Redis instances can't be part of a Redis Cluster; only nodes that are # Normal KeyDB instances can't be part of a KeyDB Cluster; only nodes that are
# started as cluster nodes can. In order to start a Redis instance as a # started as cluster nodes can. In order to start a KeyDB instance as a
# cluster node enable the cluster support uncommenting the following: # cluster node enable the cluster support uncommenting the following:
# #
# cluster-enabled yes # cluster-enabled yes
# Every cluster node has a cluster configuration file. This file is not # Every cluster node has a cluster configuration file. This file is not
# intended to be edited by hand. It is created and updated by Redis nodes. # intended to be edited by hand. It is created and updated by KeyDB nodes.
# Every Redis Cluster node requires a different cluster configuration file. # Every KeyDB Cluster node requires a different cluster configuration file.
# Make sure that instances running in the same system do not have # Make sure that instances running in the same system do not have
# overlapping cluster configuration file names. # overlapping cluster configuration file names.
# #
@ -1479,7 +1478,7 @@ lua-time-limit 5000
# #
# cluster-allow-replica-migration yes # cluster-allow-replica-migration yes
# By default Redis Cluster nodes stop accepting queries if they detect there # By default KeyDB Cluster nodes stop accepting queries if they detect there
# is at least a hash slot uncovered (no available node is serving it). # is at least a hash slot uncovered (no available node is serving it).
# This way if the cluster is partially down (for example a range of hash slots # This way if the cluster is partially down (for example a range of hash slots
# are no longer covered) all the cluster becomes, eventually, unavailable. # are no longer covered) all the cluster becomes, eventually, unavailable.
@ -1507,11 +1506,11 @@ lua-time-limit 5000
########################## CLUSTER DOCKER/NAT support ######################## ########################## CLUSTER DOCKER/NAT support ########################
# In certain deployments, Redis Cluster nodes address discovery fails, because # In certain deployments, KeyDB Cluster nodes address discovery fails, because
# addresses are NAT-ted or because ports are forwarded (the typical case is # addresses are NAT-ted or because ports are forwarded (the typical case is
# Docker and other containers). # Docker and other containers).
# #
# In order to make Redis Cluster working in such environments, a static # In order to make KeyDB Cluster working in such environments, a static
# configuration where each node knows its public address is needed. The # configuration where each node knows its public address is needed. The
# following four options are used for this scope, and are: # following four options are used for this scope, and are:
# #
@ -1529,7 +1528,7 @@ lua-time-limit 5000
# to zero, then cluster-announce-port refers to the TLS port. Note also that # to zero, then cluster-announce-port refers to the TLS port. Note also that
# cluster-announce-tls-port has no effect if cluster-tls is set to no. # cluster-announce-tls-port has no effect if cluster-tls is set to no.
# #
# If the above options are not used, the normal Redis Cluster auto-detection # If the above options are not used, the normal KeyDB Cluster auto-detection
# will be used instead. # will be used instead.
# #
# Note that when remapped, the bus port may not be at the fixed offset of # Note that when remapped, the bus port may not be at the fixed offset of
@ -1546,14 +1545,14 @@ lua-time-limit 5000
################################## SLOW LOG ################################### ################################## SLOW LOG ###################################
# The Redis Slow Log is a system to log queries that exceeded a specified # The KeyDB Slow Log is a system to log queries that exceeded a specified
# execution time. The execution time does not include the I/O operations # execution time. The execution time does not include the I/O operations
# like talking with the client, sending the reply and so forth, # like talking with the client, sending the reply and so forth,
# but just the time needed to actually execute the command (this is the only # but just the time needed to actually execute the command (this is the only
# stage of command execution where the thread is blocked and can not serve # stage of command execution where the thread is blocked and can not serve
# other requests in the meantime). # other requests in the meantime).
# #
# You can configure the slow log with two parameters: one tells Redis # You can configure the slow log with two parameters: one tells KeyDB
# what is the execution time, in microseconds, to exceed in order for the # what is the execution time, in microseconds, to exceed in order for the
# command to get logged, and the other parameter is the length of the # command to get logged, and the other parameter is the length of the
# slow log. When a new command is logged the oldest one is removed from the # slow log. When a new command is logged the oldest one is removed from the
@ -1570,9 +1569,9 @@ slowlog-max-len 128
################################ LATENCY MONITOR ############################## ################################ LATENCY MONITOR ##############################
# The Redis latency monitoring subsystem samples different operations # The KeyDB latency monitoring subsystem samples different operations
# at runtime in order to collect data related to possible sources of # at runtime in order to collect data related to possible sources of
# latency of a Redis instance. # latency of a KeyDB instance.
# #
# Via the LATENCY command this information is available to the user that can # Via the LATENCY command this information is available to the user that can
# print graphs and obtain reports. # print graphs and obtain reports.
@ -1591,7 +1590,7 @@ latency-monitor-threshold 0
############################# EVENT NOTIFICATION ############################## ############################# EVENT NOTIFICATION ##############################
# Redis can notify Pub/Sub clients about events happening in the key space. # KeyDB can notify Pub/Sub clients about events happening in the key space.
# This feature is documented at https://redis.io/topics/notifications # This feature is documented at https://redis.io/topics/notifications
# #
# For instance if keyspace events notification is enabled, and a client # For instance if keyspace events notification is enabled, and a client
@ -1601,7 +1600,7 @@ latency-monitor-threshold 0
# PUBLISH __keyspace@0__:foo del # PUBLISH __keyspace@0__:foo del
# PUBLISH __keyevent@0__:del foo # PUBLISH __keyevent@0__:del foo
# #
# It is possible to select the events that Redis will notify among a set # It is possible to select the events that KeyDB will notify among a set
# of classes. Every class is identified by a single character: # of classes. Every class is identified by a single character:
# #
# K Keyspace events, published with __keyspace@<db>__ prefix. # K Keyspace events, published with __keyspace@<db>__ prefix.
@ -1642,12 +1641,12 @@ notify-keyspace-events ""
############################### GOPHER SERVER ################################# ############################### GOPHER SERVER #################################
# Redis contains an implementation of the Gopher protocol, as specified in # KeyDB contains an implementation of the Gopher protocol, as specified in
# the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt). # the RFC 1436 (https://www.ietf.org/rfc/rfc1436.txt).
# #
# The Gopher protocol was very popular in the late '90s. It is an alternative # 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 # 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 # that the KeyDB server has just 100 lines of code in order to implement this
# support. # support.
# #
# What do you do with Gopher nowadays? Well Gopher never *really* died, and # What do you do with Gopher nowadays? Well Gopher never *really* died, and
@ -1657,18 +1656,18 @@ notify-keyspace-events ""
# controlled, and it's cool to create an alternative space for people that # controlled, and it's cool to create an alternative space for people that
# want a bit of fresh air. # want a bit of fresh air.
# #
# Anyway for the 10nth birthday of the Redis, we gave it the Gopher protocol # Anyway for the 10nth birthday of the KeyDB, we gave it the Gopher protocol
# as a gift. # as a gift.
# #
# --- HOW IT WORKS? --- # --- HOW IT WORKS? ---
# #
# The Redis Gopher support uses the inline protocol of Redis, and specifically # The KeyDB Gopher support uses the inline protocol of KeyDB, and specifically
# two kind of inline requests that were anyway illegal: an empty request # two kind of inline requests that were anyway illegal: an empty request
# or any request that starts with "/" (there are no Redis commands starting # or any request that starts with "/" (there are no KeyDB commands starting
# with such a slash). Normal RESP2/RESP3 requests are completely out of the # 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. # 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 # If you open a connection to KeyDB when Gopher is enabled and send it
# a string like "/foo", if there is a key named "/foo" it is served via the # a string like "/foo", if there is a key named "/foo" it is served via the
# Gopher protocol. # Gopher protocol.
# #
@ -1679,7 +1678,7 @@ notify-keyspace-events ""
# #
# --- SECURITY WARNING --- # --- SECURITY WARNING ---
# #
# If you plan to put Redis on the internet in a publicly accessible address # If you plan to put KeyDB on the internet in a publicly accessible address
# to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance. # to server Gopher pages MAKE SURE TO SET A PASSWORD to the instance.
# Once a password is set: # Once a password is set:
# #
@ -1776,8 +1775,8 @@ stream-node-max-bytes 4096
stream-node-max-entries 100 stream-node-max-entries 100
# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in # Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
# order to help rehashing the main Redis hash table (the one mapping top-level # order to help rehashing the main KeyDB hash table (the one mapping top-level
# keys to values). The hash table implementation Redis uses (see dict.c) # keys to values). The hash table implementation KeyDB uses (see dict.c)
# performs a lazy rehashing: the more operation you run into a hash table # performs a lazy rehashing: the more operation you run into a hash table
# that is rehashing, the more rehashing "steps" are performed, so if the # that is rehashing, the more rehashing "steps" are performed, so if the
# server is idle the rehashing is never complete and some more memory is used # server is idle the rehashing is never complete and some more memory is used
@ -1788,7 +1787,7 @@ stream-node-max-entries 100
# #
# If unsure: # If unsure:
# use "activerehashing no" if you have hard latency requirements and it is # use "activerehashing no" if you have hard latency requirements and it is
# not a good thing in your environment that Redis can reply from time to time # not a good thing in your environment that KeyDB can reply from time to time
# to queries with 2 milliseconds delay. # to queries with 2 milliseconds delay.
# #
# use "activerehashing yes" if you don't have such hard requirements but # use "activerehashing yes" if you don't have such hard requirements but
@ -1840,21 +1839,21 @@ client-output-buffer-limit pubsub 32mb 8mb 60
# #
# client-query-buffer-limit 1gb # client-query-buffer-limit 1gb
# In the Redis protocol, bulk requests, that are, elements representing single # In the KeyDB protocol, bulk requests, that are, elements representing single
# strings, are normally limited to 512 mb. However you can change this limit # strings, are normally limited to 512 mb. However you can change this limit
# here, but must be 1mb or greater # here, but must be 1mb or greater
# #
# proto-max-bulk-len 512mb # proto-max-bulk-len 512mb
# Redis calls an internal function to perform many background tasks, like # KeyDB calls an internal function to perform many background tasks, like
# closing connections of clients in timeout, purging expired keys that are # closing connections of clients in timeout, purging expired keys that are
# never requested, and so forth. # never requested, and so forth.
# #
# Not all tasks are performed with the same frequency, but Redis checks for # Not all tasks are performed with the same frequency, but KeyDB checks for
# tasks to perform according to the specified "hz" value. # tasks to perform according to the specified "hz" value.
# #
# By default "hz" is set to 10. Raising the value will use more CPU when # By default "hz" is set to 10. Raising the value will use more CPU when
# Redis is idle, but at the same time will make Redis more responsive when # KeyDB is idle, but at the same time will make KeyDB more responsive when
# there are many keys expiring at the same time, and timeouts may be # there are many keys expiring at the same time, and timeouts may be
# handled with more precision. # handled with more precision.
# #
@ -1868,7 +1867,7 @@ hz 10
# avoid too many clients are processed for each background task invocation # avoid too many clients are processed for each background task invocation
# in order to avoid latency spikes. # in order to avoid latency spikes.
# #
# Since the default HZ value by default is conservatively set to 10, Redis # Since the default HZ value by default is conservatively set to 10, KeyDB
# offers, and enables by default, the ability to use an adaptive HZ value # offers, and enables by default, the ability to use an adaptive HZ value
# which will temporarily raise when there are many connected clients. # which will temporarily raise when there are many connected clients.
# #
@ -1891,16 +1890,16 @@ aof-rewrite-incremental-fsync yes
# big latency spikes. # big latency spikes.
rdb-save-incremental-fsync yes rdb-save-incremental-fsync yes
# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good # KeyDB LFU eviction (see maxmemory setting) can be tuned. However it is a good
# idea to start with the default settings and only change them after investigating # idea to start with the default settings and only change them after investigating
# how to improve the performances and how the keys LFU change over time, which # how to improve the performances and how the keys LFU change over time, which
# is possible to inspect via the OBJECT FREQ command. # is possible to inspect via the OBJECT FREQ command.
# #
# There are two tunable parameters in the Redis LFU implementation: the # There are two tunable parameters in the KeyDB LFU implementation: the
# counter logarithm factor and the counter decay time. It is important to # counter logarithm factor and the counter decay time. It is important to
# understand what the two parameters mean before changing them. # understand what the two parameters mean before changing them.
# #
# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis # The LFU counter is just 8 bits per key, it's maximum value is 255, so KeyDB
# uses a probabilistic increment with logarithmic behavior. Given the value # uses a probabilistic increment with logarithmic behavior. Given the value
# of the old counter, when a key is accessed, the counter is incremented in # of the old counter, when a key is accessed, the counter is incremented in
# this way: # this way:
@ -1952,7 +1951,7 @@ rdb-save-incremental-fsync yes
# What is active defragmentation? # What is active defragmentation?
# ------------------------------- # -------------------------------
# #
# Active (online) defragmentation allows a Redis server to compact the # Active (online) defragmentation allows a KeyDB server to compact the
# spaces left between small allocations and deallocations of data in memory, # spaces left between small allocations and deallocations of data in memory,
# thus allowing to reclaim back memory. # thus allowing to reclaim back memory.
# #
@ -1960,11 +1959,11 @@ rdb-save-incremental-fsync yes
# less so with Jemalloc, fortunately) and certain workloads. Normally a server # less so with Jemalloc, fortunately) and certain workloads. Normally a server
# restart is needed in order to lower the fragmentation, or at least to flush # restart is needed in order to lower the fragmentation, or at least to flush
# away all the data and create it again. However thanks to this feature # away all the data and create it again. However thanks to this feature
# implemented by Oran Agra for Redis 4.0 this process can happen at runtime # implemented by Oran Agra for KeyDB 4.0 this process can happen at runtime
# in a "hot" way, while the server is running. # in a "hot" way, while the server is running.
# #
# Basically when the fragmentation is over a certain level (see the # Basically when the fragmentation is over a certain level (see the
# configuration options below) Redis will start to create new copies of the # configuration options below) KeyDB will start to create new copies of the
# values in contiguous memory regions by exploiting certain specific Jemalloc # values in contiguous memory regions by exploiting certain specific Jemalloc
# features (in order to understand if an allocation is causing fragmentation # features (in order to understand if an allocation is causing fragmentation
# and to allocate it in a better place), and at the same time, will release the # and to allocate it in a better place), and at the same time, will release the
@ -1973,8 +1972,8 @@ rdb-save-incremental-fsync yes
# #
# Important things to understand: # Important things to understand:
# #
# 1. This feature is disabled by default, and only works if you compiled Redis # 1. This feature is disabled by default, and only works if you compiled KeyDB
# to use the copy of Jemalloc we ship with the source code of Redis. # to use the copy of Jemalloc we ship with the source code of KeyDB.
# This is the default with Linux builds. # This is the default with Linux builds.
# #
# 2. You never need to enable this feature if you don't have fragmentation # 2. You never need to enable this feature if you don't have fragmentation
@ -2012,14 +2011,14 @@ rdb-save-incremental-fsync yes
# Jemalloc background thread for purging will be enabled by default # Jemalloc background thread for purging will be enabled by default
jemalloc-bg-thread yes jemalloc-bg-thread yes
# It is possible to pin different threads and processes of Redis to specific # It is possible to pin different threads and processes of KeyDB to specific
# CPUs in your system, in order to maximize the performances of the server. # CPUs in your system, in order to maximize the performances of the server.
# This is useful both in order to pin different Redis threads in different # This is useful both in order to pin different KeyDB threads in different
# CPUs, but also in order to make sure that multiple Redis instances running # CPUs, but also in order to make sure that multiple KeyDB instances running
# in the same host will be pinned to different CPUs. # in the same host will be pinned to different CPUs.
# #
# Normally you can do this using the "taskset" command, however it is also # Normally you can do this using the "taskset" command, however it is also
# possible to this via Redis configuration directly, both in Linux and FreeBSD. # possible to this via KeyDB configuration directly, both in Linux and FreeBSD.
# #
# You can pin the server/IO threads, bio threads, aof rewrite child process, and # You can pin the server/IO threads, bio threads, aof rewrite child process, and
# the bgsave child process. The syntax to specify the cpu list is the same as # the bgsave child process. The syntax to specify the cpu list is the same as