From 448a1a3879eb719f3ad4f99c396e740bf585373e Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 17:04:33 +0000 Subject: [PATCH 01/15] fixed flag var names in ci Former-commit-id: e632c3db1b6c8b0294075e60533f40812c554b47 --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bce8f20b8..9086bb701 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: run: | sudo apt-get update sudo apt-get -y install uuid-dev libcurl4-openssl-dev - make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' BUILD_TLS=yes -j2 + make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' BUILD_TLS=yes -j2 - name: gen-cert run: ./utils/gen-test-certs.sh - name: test-tls @@ -44,7 +44,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: make - run: make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' -j2 + run: make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' -j2 build-libc-malloc: runs-on: ubuntu-latest @@ -54,5 +54,5 @@ jobs: run: | sudo apt-get update sudo apt-get -y install uuid-dev libcurl4-openssl-dev - make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' MALLOC=libc -j2 + make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' MALLOC=libc -j2 From 20b5272f6034ed92c690b244b794e990cdf20f5d Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 18:08:19 +0000 Subject: [PATCH 02/15] removed the question issue template - doesn't seem necessary for us Former-commit-id: ce64f469f404f79ae0028627e7ebfcc47781eeab --- .github/ISSUE_TEMPLATE/question.md | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/question.md diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md deleted file mode 100644 index 6acde0d06..000000000 --- a/.github/ISSUE_TEMPLATE/question.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: Question -about: Ask the Redis developers -title: '[QUESTION]' -labels: '' -assignees: '' - ---- - -Please keep in mind that this issue tracker should be used for reporting bugs or proposing improvements to the Redis server. - -Generally, questions about using Redis should be directed to the [community](https://redis.io/community): - -* [the mailing list](https://groups.google.com/forum/#!forum/redis-db) -* [the `redis` tag at StackOverflow](http://stackoverflow.com/questions/tagged/redis) -* [/r/redis subreddit](http://www.reddit.com/r/redis) -* [the irc channel #redis](http://webchat.freenode.net/?channels=redis) on freenode - -It is also possible that your question was already asked here, so please do a quick issues search before submitting. Lastly, if your question is about one of Redis' [clients](https://redis.io/clients), you may to contact your client's developers for help. - -That said, please feel free to replace all this with your question :) \ No newline at end of file From c2655387fca5e4b4469f8aef509b4307b36e018a Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 18:15:50 +0000 Subject: [PATCH 03/15] updated pkg/deb/conf/keydb.conf to use keydb name throughout Former-commit-id: 308cf77437374f01cc40101f2f35768db7a16302 --- pkg/deb/conf/keydb.conf | 315 ++++++++++++++++++++-------------------- 1 file changed, 157 insertions(+), 158 deletions(-) diff --git a/pkg/deb/conf/keydb.conf b/pkg/deb/conf/keydb.conf index 8e1552b9a..b54d1bb36 100644 --- a/pkg/deb/conf/keydb.conf +++ b/pkg/deb/conf/keydb.conf @@ -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: # # ./keydb-server /path/to/keydb.conf @@ -20,12 +20,12 @@ ################################## INCLUDES ################################### # 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 # other files, so use this wisely. # # 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 # at the beginning of this file to avoid overwriting config change at runtime. # @@ -45,7 +45,7 @@ ################################## 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. # It is possible to listen to just one or multiple selected interfaces using # 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 * -::* # 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 # instance to everybody on the internet. So by default we uncomment the -# following bind directive, that will force Redis to listen only on the -# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis +# following bind directive, that will force KeyDB to listen only on the +# 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 # running on). # @@ -75,7 +75,7 @@ bind 127.0.0.1 ::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. +# KeyDB instances left open on the internet are accessed and exploited. # # When protected mode is on and if: # @@ -88,13 +88,13 @@ bind 127.0.0.1 ::1 # sockets. # # 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 # 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. +# If port 0 is specified KeyDB will not listen on a TCP socket. port 6379 # TCP listen() backlog. @@ -109,7 +109,7 @@ tcp-backlog 511 # Unix socket. # # 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. # # unixsocket /run/keydb.sock @@ -131,8 +131,7 @@ timeout 0 # Note that to close the connection the double of the time is needed. # On other kernels the period depends on the kernel configuration. # -# A reasonable value for this option is 300 seconds, which is the new -# Redis default starting with Redis 3.2.1. +# A reasonable value for this option is 300 seconds, which is the default. tcp-keepalive 300 ################################# TLS/SSL ##################################### @@ -156,7 +155,7 @@ tcp-keepalive 300 # # 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 # cluster bus connections, etc.). # @@ -178,7 +177,7 @@ tcp-keepalive 300 # tls-dh-params-file keydb.dh # 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. # # tls-ca-cert-file ca.crt @@ -194,14 +193,14 @@ tcp-keepalive 300 # tls-auth-clients no # 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. # # Use the following directive to enable TLS on replication links. # # 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-cluster yes @@ -251,18 +250,18 @@ tcp-keepalive 300 ################################# GENERAL ##################################### -# By default Redis 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. -# When Redis is supervised by upstart or systemd, this parameter has no impact. +# By default KeyDB does not run as a daemon. Use 'yes' if you need it. +# Note that KeyDB will write a pid file in /var/run/keydb.pid when daemonized. +# When KeyDB is supervised by upstart or systemd, this parameter has no impact. 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: # 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 # 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. # supervised auto - detect upstart or systemd method based on # UPSTART_JOB or NOTIFY_SOCKET environment variables @@ -274,14 +273,14 @@ daemonize no # # 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. # # 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 # 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. # # Note that on modern Linux systems "/run/keydb.pid" is more conforming @@ -297,7 +296,7 @@ pidfile /var/run/keydb_6379.pid loglevel notice # 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 logfile /var/log/keydb/keydb-server.log @@ -317,7 +316,7 @@ logfile /var/log/keydb/keydb-server.log # crash-log-enabled no # 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 @@ -326,7 +325,7 @@ logfile /var/log/keydb/keydb-server.log # dbid is a number between 0 and 'databases'-1 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 # disabled. Basically this means that normally a logo is displayed only in # interactive sessions. @@ -335,12 +334,12 @@ databases 16 # ASCII art logo in startup logs by setting the following option to yes. 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 # the process name as executed by setting the following to no. 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. # # Template variables are specified in curly brackets. The following variables are @@ -363,7 +362,7 @@ proc-title-template "{title} {listen-addr} {server-mode}" # # save # -# 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. # # Snapshotting can be completely disabled with a single empty string argument @@ -371,7 +370,7 @@ proc-title-template "{title} {listen-addr} {server-mode}" # # 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 300 seconds (5 minutes) if at least 100 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 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. # 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 # 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. # -# However if you have setup your proper monitoring of the Redis server -# and persistence, you may want to disable this feature so that Redis will +# However if you have setup your proper monitoring of the KeyDB server +# 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, # permissions, and so forth. stop-writes-on-bgsave-error yes @@ -455,18 +454,18 @@ dir /var/lib/keydb ################################# REPLICATION ################################# -# Master-Replica replication. Use replicaof to make a Redis instance a copy of -# another Redis server. A few things to understand ASAP about Redis replication. +# Master-Replica replication. Use replicaof to make a KeyDB instance a copy of +# another KeyDB server. A few things to understand ASAP about KeyDB replication. # # +------------------+ +---------------+ # | Master | ---> | Replica | # | (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 # 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 # 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. @@ -483,7 +482,7 @@ dir /var/lib/keydb # # masterauth # -# 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 # 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 @@ -515,7 +514,7 @@ replica-serve-stale-data yes # may also cause problems if clients are writing to it because of a # 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 # 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. # 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 # 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. # # 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 # 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 -# cause Redis to abort in case of I/O errors during the initial synchronization +# failovers. RDB diskless load + KeyDB modules not handling I/O reads may also +# 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. # ----------------------------------------------------------------------------- # @@ -615,7 +614,7 @@ repl-diskless-load disabled # 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 # the data to appear on the replica side, up to 40 milliseconds with # Linux kernels using a default configuration. @@ -654,8 +653,8 @@ repl-disable-tcp-nodelay no # # repl-backlog-ttl 3600 -# The replica priority is an integer number published by Redis in the INFO output. -# It is used by Redis Sentinel in order to select a replica to promote into a +# The replica priority is an integer number published by KeyDB in the INFO output. +# 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. # # 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 # 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. replica-priority 100 # ----------------------------------------------------------------------------- -# By default, Redis Sentinel includes all replicas in its reports. A replica -# can be excluded from Redis Sentinel's announcements. An unannounced replica +# By default, KeyDB Sentinel includes all replicas in its reports. A replica +# can be excluded from KeyDB Sentinel's announcements. An unannounced replica # will be ignored by the 'sentinel replicas ' 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 # 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 # 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 # 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 # "ROLE" command of a master. # @@ -734,7 +733,7 @@ replica-priority 100 ############################### 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 # 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 @@ -743,22 +742,22 @@ replica-priority 100 # https://redis.io/topics/client-side-caching # # 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 # 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. # # 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 -# 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 # 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 # side to track information about who cached what, and the ability of clients # 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. # In the "stats" INFO section, you can find information about the number of # keys in the invalidation table at every given moment. @@ -770,7 +769,7 @@ replica-priority 100 ################################## 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 # 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 @@ -778,7 +777,7 @@ replica-priority 100 # 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. -# Redis ACL users are defined in the following format: +# KeyDB ACL users are defined in the following format: # # user ... acl rules ... # @@ -807,7 +806,7 @@ replica-priority 100 # +@ 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 -# 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 # present in the server, and that will be loaded in the future # via modules. @@ -891,7 +890,7 @@ acllog-max-len 128 # # 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 # the password for the default user. Clients will still authenticate using # AUTH as usually, or more explicitly with AUTH default @@ -903,7 +902,7 @@ acllog-max-len 128 # requirepass foobared # 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 # default Pub/Sub channels permission if new users is controlled by the # 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 # 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. # -# 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 # 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 @@ -951,15 +950,15 @@ acllog-max-len 128 ################################### CLIENTS #################################### # 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 # 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'. # -# 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 # connections, one incoming and another outgoing. It is important to size the # limit accordingly in case of very large clusters. @@ -969,15 +968,15 @@ acllog-max-len 128 ############################## MEMORY MANAGEMENT ################################ # 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). # -# If Redis 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 +# If KeyDB can't remove keys according to the policy, or if the policy is +# 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 # 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). # # WARNING: If you have replicas attached to an instance with maxmemory on, @@ -993,7 +992,7 @@ acllog-max-len 128 # # maxmemory -# 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: # # volatile-lru -> Evict using approximated LRU among the keys with an expire set. @@ -1012,7 +1011,7 @@ acllog-max-len 128 # randomized algorithms. # # 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 # 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 @@ -1024,7 +1023,7 @@ acllog-max-len 128 # 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 -# 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 # configuration directive. # @@ -1041,7 +1040,7 @@ acllog-max-len 128 # # 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 # 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. @@ -1061,7 +1060,7 @@ acllog-max-len 128 # # 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 # "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 @@ -1080,16 +1079,16 @@ acllog-max-len 128 ############################# 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 # 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 # 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 # 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 # FLUSHDB commands, in order to reclaim memory in background. Those commands # 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. # 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. -# Specifically Redis deletes objects independently of a user call in the +# Specifically KeyDB deletes objects independently of a user call in the # following scenarios: # # 1) On eviction, because of the maxmemory and maxmemory policy configurations, @@ -1143,21 +1142,21 @@ lazyfree-lazy-user-flush no ################################ 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 # 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 -# 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 -# 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. # # 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. # 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 # 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 # 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 -# --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. ############################ 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 # 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 # attempt to have background child processes killed before all others, and # replicas killed before masters. # -# Redis supports three options: +# KeyDB supports three options: # # no: Don't make changes to oom-score-adj (default). # 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 # 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", -# 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. # If for some reason you prefer to keep it enabled, you can set this config to # "no" and the kernel global to "always". @@ -1233,20 +1232,20 @@ disable-thp yes ############################## APPEND ONLY MODE ############################### -# By default Redis asynchronously dumps the dataset on disk. This mode is -# good enough in many applications, but an issue with the Redis process or +# By default KeyDB asynchronously dumps the dataset on disk. This mode is +# 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 # the configured save points). # # The Append Only File is an alternative persistence mode that provides # 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 -# 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. # # 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. # # 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 # 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. # 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 # saving process (a background save or AOF log background rewriting) is # 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 # our synchronous write(2) call. # @@ -1295,7 +1294,7 @@ appendfsync everysec # that will prevent fsync() from being called in the main process while a # 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 # possible to lose up to 30 seconds of log in the worst scenario (with the # default Linux settings). @@ -1306,10 +1305,10 @@ appendfsync everysec no-appendfsync-on-rewrite no # 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. # -# 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 # the AOF at startup is used). # @@ -1325,19 +1324,19 @@ no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 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. -# 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 -# 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). # -# 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 # 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 -# 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 # 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 @@ -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 # 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. 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 # on the rewritten AOF file is composed of two different stanzas: # # [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 # tail. aof-use-rdb-preamble yes @@ -1364,7 +1363,7 @@ aof-use-rdb-preamble yes # 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 # 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. 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 # of users to deploy it in production. # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # -# Normal Redis instances can't be part of a Redis Cluster; only nodes that are -# started as cluster nodes can. In order to start a Redis instance as a +# 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 KeyDB instance as a # cluster node enable the cluster support uncommenting the following: # # cluster-enabled yes # 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. -# Every Redis Cluster node requires a different cluster configuration file. +# intended to be edited by hand. It is created and updated by KeyDB nodes. +# Every KeyDB Cluster node requires a different cluster configuration file. # Make sure that instances running in the same system do not have # overlapping cluster configuration file names. # @@ -1479,7 +1478,7 @@ lua-time-limit 5000 # # 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). # 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. @@ -1507,11 +1506,11 @@ lua-time-limit 5000 ########################## 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 # 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 # 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 # 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. # # 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 ################################### -# 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 # 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 # stage of command execution where the thread is blocked and can not serve # 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 # 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 @@ -1570,9 +1569,9 @@ slowlog-max-len 128 ################################ 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 -# latency of a Redis instance. +# latency of a KeyDB instance. # # Via the LATENCY command this information is available to the user that can # print graphs and obtain reports. @@ -1591,7 +1590,7 @@ latency-monitor-threshold 0 ############################# 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 # # 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 __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: # # K Keyspace events, published with __keyspace@__ prefix. @@ -1642,12 +1641,12 @@ notify-keyspace-events "" ############################### 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 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 +# that the KeyDB 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 @@ -1657,18 +1656,18 @@ notify-keyspace-events "" # 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 +# Anyway for the 10nth birthday of the KeyDB, we gave it the Gopher protocol # as a gift. # # --- 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 -# 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 # 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 # Gopher protocol. # @@ -1679,7 +1678,7 @@ notify-keyspace-events "" # # --- 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. # Once a password is set: # @@ -1776,8 +1775,8 @@ stream-node-max-bytes 4096 stream-node-max-entries 100 # 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 -# keys to values). The hash table implementation Redis uses (see dict.c) +# order to help rehashing the main KeyDB hash table (the one mapping top-level +# 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 # 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 @@ -1788,7 +1787,7 @@ stream-node-max-entries 100 # # If unsure: # 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. # # 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 -# 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 # here, but must be 1mb or greater # # 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 # 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. # # 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 # handled with more precision. # @@ -1868,7 +1867,7 @@ hz 10 # avoid too many clients are processed for each background task invocation # 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 # which will temporarily raise when there are many connected clients. # @@ -1891,16 +1890,16 @@ aof-rewrite-incremental-fsync yes # big latency spikes. 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 # how to improve the performances and how the keys LFU change over time, which # 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 # 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 # of the old counter, when a key is accessed, the counter is incremented in # this way: @@ -1952,7 +1951,7 @@ rdb-save-incremental-fsync yes # 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, # 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 # 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 -# 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. # # 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 # 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 @@ -1973,8 +1972,8 @@ rdb-save-incremental-fsync yes # # Important things to understand: # -# 1. This feature is disabled by default, and only works if you compiled Redis -# to use the copy of Jemalloc we ship with the source code of 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 KeyDB. # This is the default with Linux builds. # # 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-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. -# This is useful both in order to pin different Redis threads in different -# CPUs, but also in order to make sure that multiple Redis instances running +# This is useful both in order to pin different KeyDB threads in different +# CPUs, but also in order to make sure that multiple KeyDB instances running # in the same host will be pinned to different CPUs. # # 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 # the bgsave child process. The syntax to specify the cpu list is the same as From 45480d3aaf935e1a7d4aa636ce663ac8e036b534 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 18:17:18 +0000 Subject: [PATCH 04/15] removed outdated comment in server.cpp Former-commit-id: 98f08034a13341059b9b1690989e7ef0207ac920 --- src/server.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index 3d5c70faa..045938657 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -4635,10 +4635,6 @@ int prepareForShutdown(int flags) { overwrite the synchronous saving did by SHUTDOWN. */ if (g_pserver->child_type == CHILD_TYPE_RDB) { serverLog(LL_WARNING,"There is a child saving an .rdb. Killing it!"); - /* Note that, in killRDBChild, we call rdbRemoveTempFile that will - * do close fd(in order to unlink file actully) in background thread. - * The temp rdb file fd may won't be closed when redis exits quickly, - * but OS will close this fd when process exits. */ killRDBChild(); /* Note that, in killRDBChild normally has backgroundSaveDoneHandler * doing it's cleanup, but in this case this code will not be reached, From 39a3238a8f1cf28e1a128aeec4d11bf3480d8432 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 18:19:02 +0000 Subject: [PATCH 05/15] changed redis.pid to keydb.pid where necessary Former-commit-id: 76d9c7c82abe7aecc7301d82e755953a37513138 --- pkg/rpm/keydb_build/keydb_rpm/etc/keydb/keydb.conf | 6 +++--- tests/assets/default.conf | 4 ++-- tests/assets/minimal.conf | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/rpm/keydb_build/keydb_rpm/etc/keydb/keydb.conf b/pkg/rpm/keydb_build/keydb_rpm/etc/keydb/keydb.conf index 9cf1773c7..d3e6ce9c7 100644 --- a/pkg/rpm/keydb_build/keydb_rpm/etc/keydb/keydb.conf +++ b/pkg/rpm/keydb_build/keydb_rpm/etc/keydb/keydb.conf @@ -131,8 +131,8 @@ tcp-keepalive 300 ################################# GENERAL ##################################### -# By default Redis does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/redis.pid when daemonized. +# By default KeyDB does not run as a daemon. Use 'yes' if you need it. +# Note that KeyDB will write a pid file in /var/run/keydb.pid when daemonized. daemonize yes # If you run Redis from upstart or systemd, Redis can interact with your @@ -151,7 +151,7 @@ supervised no # # 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 -# is used even if not specified, defaulting to "/var/run/redis.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 # nothing bad happens, the server will start and run normally. diff --git a/tests/assets/default.conf b/tests/assets/default.conf index d7b8a75c6..995d5206c 100644 --- a/tests/assets/default.conf +++ b/tests/assets/default.conf @@ -1,9 +1,9 @@ -# Redis configuration for testing. +# KeyDB configuration for testing. always-show-logo yes notify-keyspace-events KEA daemonize no -pidfile /var/run/redis.pid +pidfile /var/run/keydb.pid port 6379 timeout 0 bind 127.0.0.1 diff --git a/tests/assets/minimal.conf b/tests/assets/minimal.conf index ae14ae87b..ed49223c9 100644 --- a/tests/assets/minimal.conf +++ b/tests/assets/minimal.conf @@ -1,5 +1,5 @@ # Minimal configuration for testing. always-show-logo yes daemonize no -pidfile /var/run/redis.pid +pidfile /var/run/keydb.pid loglevel verbose From f8289cebcc764288d19a9a999234cfe15a1614c4 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 18:19:59 +0000 Subject: [PATCH 06/15] removed unreliable musl test and left only accurate new one Former-commit-id: 386be8990a83fcc5d57aa20a268544a877c2cfd7 --- tests/integration/logging.tcl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/integration/logging.tcl b/tests/integration/logging.tcl index 742471e0b..40713ed2e 100644 --- a/tests/integration/logging.tcl +++ b/tests/integration/logging.tcl @@ -1,12 +1,10 @@ set system_name [string tolower [exec uname -s]] -# ldd --version returns 1 under musl for unknown reasons. If this check stops working, that may be why -set is_musl [catch {exec ldd --version}] set system_supported 0 # We only support darwin or Linux with glibc if {$system_name eq {darwin}} { set system_supported 1 -} elseif {$system_name eq {linux} && $is_musl eq 0} { +} elseif {$system_name eq {linux}} { # Avoid the test on libmusl, which does not support backtrace set ldd [exec ldd src/keydb-server] if {![string match {*libc.musl*} $ldd]} { From cb3f3d1b7ee0e0d4001132605d70f4408fbd83ae Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 19:09:40 +0000 Subject: [PATCH 07/15] renamed redis test files Former-commit-id: 1c77104b5efcdfd1fce6a4a946e8a1ead35dc7f0 --- tests/helpers/bg_block_op.tcl | 2 +- tests/helpers/bg_complex_data.tcl | 2 +- tests/helpers/gen_write_load.tcl | 2 +- tests/instances.tcl | 2 +- .../{redis-benchmark.tcl => keydb-benchmark.tcl} | 0 tests/integration/{redis-cli.tcl => keydb-cli.tcl} | 0 tests/support/{redis.tcl => keydb.tcl} | 0 tests/test_helper.tcl | 6 +++--- utils/speed-regression.tcl | 2 +- 9 files changed, 8 insertions(+), 8 deletions(-) rename tests/integration/{redis-benchmark.tcl => keydb-benchmark.tcl} (100%) rename tests/integration/{redis-cli.tcl => keydb-cli.tcl} (100%) rename tests/support/{redis.tcl => keydb.tcl} (100%) diff --git a/tests/helpers/bg_block_op.tcl b/tests/helpers/bg_block_op.tcl index c8b323308..f76c22381 100644 --- a/tests/helpers/bg_block_op.tcl +++ b/tests/helpers/bg_block_op.tcl @@ -1,4 +1,4 @@ -source tests/support/redis.tcl +source tests/support/keydb.tcl source tests/support/util.tcl set ::tlsdir "tests/tls" diff --git a/tests/helpers/bg_complex_data.tcl b/tests/helpers/bg_complex_data.tcl index e888748a7..606ed8f8b 100644 --- a/tests/helpers/bg_complex_data.tcl +++ b/tests/helpers/bg_complex_data.tcl @@ -1,4 +1,4 @@ -source tests/support/redis.tcl +source tests/support/keydb.tcl source tests/support/util.tcl set ::tlsdir "tests/tls" diff --git a/tests/helpers/gen_write_load.tcl b/tests/helpers/gen_write_load.tcl index cbf6651bd..200026af6 100644 --- a/tests/helpers/gen_write_load.tcl +++ b/tests/helpers/gen_write_load.tcl @@ -1,4 +1,4 @@ -source tests/support/redis.tcl +source tests/support/keydb.tcl set ::tlsdir "tests/tls" diff --git a/tests/instances.tcl b/tests/instances.tcl index e494e741c..ce5518231 100644 --- a/tests/instances.tcl +++ b/tests/instances.tcl @@ -10,7 +10,7 @@ package require Tcl 8.5 set tcl_precision 17 -source ../support/redis.tcl +source ../support/keydb.tcl source ../support/util.tcl source ../support/server.tcl source ../support/test.tcl diff --git a/tests/integration/redis-benchmark.tcl b/tests/integration/keydb-benchmark.tcl similarity index 100% rename from tests/integration/redis-benchmark.tcl rename to tests/integration/keydb-benchmark.tcl diff --git a/tests/integration/redis-cli.tcl b/tests/integration/keydb-cli.tcl similarity index 100% rename from tests/integration/redis-cli.tcl rename to tests/integration/keydb-cli.tcl diff --git a/tests/support/redis.tcl b/tests/support/keydb.tcl similarity index 100% rename from tests/support/redis.tcl rename to tests/support/keydb.tcl diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index f942ec838..c4abcf2f3 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -5,7 +5,7 @@ package require Tcl 8.5 set tcl_precision 17 -source tests/support/redis.tcl +source tests/support/keydb.tcl source tests/support/server.tcl source tests/support/tmpfile.tcl source tests/support/test.tcl @@ -57,8 +57,8 @@ set ::all_tests { integration/psync2-reg integration/psync2-pingoff integration/failover - integration/redis-cli - integration/redis-benchmark + integration/keydb-cli + integration/keydb-benchmark unit/pubsub unit/slowlog unit/scripting diff --git a/utils/speed-regression.tcl b/utils/speed-regression.tcl index 8d5220c75..1e9181d41 100755 --- a/utils/speed-regression.tcl +++ b/utils/speed-regression.tcl @@ -2,7 +2,7 @@ # Copyright (C) 2011 Salvatore Sanfilippo # Released under the BSD license like Redis itself -source ../tests/support/redis.tcl +source ../tests/support/keydb.tcl set ::port 12123 set ::tests {PING,SET,GET,INCR,LPUSH,LPOP,SADD,SPOP,LRANGE_100,LRANGE_600,MSET} set ::datasize 16 From ac9fadc3dd603d2edcfb5d2c83a3dd44b1ca0852 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 19:10:12 +0000 Subject: [PATCH 08/15] renamed workspace gitignore Former-commit-id: 046f5756325992752b51d7ac601fd84d4faa53ce --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2fa8255df..6c2d3a16e 100644 --- a/.gitignore +++ b/.gitignore @@ -58,4 +58,4 @@ Makefile.dep .ccls .ccls-cache/* compile_commands.json -redis.code-workspace +keydb.code-workspace From 53be1b7fba86d3b4023f1e8a655a0a858d60f15a Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 19:10:35 +0000 Subject: [PATCH 09/15] renamed redis mention in readme Former-commit-id: 34b0209f05d4f44e4b14278ad746f1eda679b32a --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9e7506e64..14c0dddf3 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ To compile against jemalloc on Mac OS X systems, use: Monotonic clock --------------- -By default, Redis will build using the POSIX clock_gettime function as the +By default, KeyDB will build using the POSIX clock_gettime function as the monotonic clock source. On most modern systems, the internal processor clock can be used to improve performance. Cautions can be found here: http://oliveryang.net/2015/09/pitfalls-of-TSC-usage/ From 974dc4918a0c22f780b7c44fd6b8eabb03749117 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 19:11:12 +0000 Subject: [PATCH 10/15] renamed redis mentions in runtest files Former-commit-id: 2e894a512b30a8317619e55fa30a218306f8514f --- runtest-cluster | 2 +- runtest-moduleapi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtest-cluster b/runtest-cluster index a86e93141..3a6d20978 100755 --- a/runtest-cluster +++ b/runtest-cluster @@ -8,7 +8,7 @@ done if [ -z $TCLSH ] then - echo "You need tcl 8.5 or newer in order to run the Redis Cluster test" + echo "You need tcl 8.5 or newer in order to run the KeyDB Cluster test" exit 1 fi $TCLSH tests/cluster/run.tcl $* diff --git a/runtest-moduleapi b/runtest-moduleapi index dc4c9e1ea..154818ed8 100755 --- a/runtest-moduleapi +++ b/runtest-moduleapi @@ -9,7 +9,7 @@ done if [ -z $TCLSH ] then - echo "You need tcl 8.5 or newer in order to run the Redis ModuleApi test" + echo "You need tcl 8.5 or newer in order to run the KeyDB ModuleApi test" exit 1 fi From 2c78e8c046d04559fcc3aa741dc8f7074f3d17a3 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Fri, 11 Jun 2021 19:16:33 +0000 Subject: [PATCH 11/15] several redis->keydb changes in sentinel.conf Former-commit-id: d2ef0594711c83ec9223d2e3b26fce9b5a4f685f --- sentinel.conf | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/sentinel.conf b/sentinel.conf index 5ab5a8b5c..917fe8a6e 100644 --- a/sentinel.conf +++ b/sentinel.conf @@ -20,12 +20,12 @@ # The port that this sentinel instance will run on port 26379 -# By default Redis Sentinel does not run as a daemon. Use 'yes' if you need it. -# Note that Redis will write a pid file in /var/run/keydb-sentinel.pid when +# By default KeyDB Sentinel does not run as a daemon. Use 'yes' if you need it. +# Note that KeyDB will write a pid file in /var/run/keydb-sentinel.pid when # daemonized. daemonize no -# When running daemonized, Redis Sentinel writes a pid file in +# When running daemonized, KeyDB Sentinel writes a pid file in # /var/run/keydb-sentinel.pid by default. You can specify a custom pid file # location here. pidfile /var/run/keydb-sentinel.pid @@ -59,7 +59,7 @@ logfile "" # dir # Every long running process should have a well-defined working directory. -# For Redis Sentinel to chdir to /tmp at startup is the simplest thing +# For KeyDB Sentinel to chdir to /tmp at startup is the simplest thing # for the process to don't interfere with administrative tasks such as # unmounting filesystems. dir /tmp @@ -86,16 +86,16 @@ sentinel monitor mymaster 127.0.0.1 6379 2 # sentinel auth-pass # # Set the password to use to authenticate with the master and replicas. -# Useful if there is a password set in the Redis instances to monitor. +# Useful if there is a password set in the KeyDB instances to monitor. # # Note that the master password is also used for replicas, so it is not # possible to set a different password in masters and replicas instances # if you want to be able to monitor these instances with Sentinel. # -# However you can have Redis instances without the authentication enabled -# mixed with Redis instances requiring the authentication (as long as the +# However you can have KeyDB instances without the authentication enabled +# mixed with KeyDB instances requiring the authentication (as long as the # password set is the same for all the instances requiring the password) as -# the AUTH command will have no effect in Redis instances with authentication +# the AUTH command will have no effect in KeyDB instances with authentication # switched off. # # Example: @@ -105,10 +105,10 @@ sentinel monitor mymaster 127.0.0.1 6379 2 # sentinel auth-user # # This is useful in order to authenticate to instances having ACL capabilities, -# that is, running Redis 6.0 or greater. When just auth-pass is provided the -# Sentinel instance will authenticate to Redis using the old "AUTH " +# that is, running KeyDB 6.0 or greater. When just auth-pass is provided the +# Sentinel instance will authenticate to KeyDB using the old "AUTH " # method. When also an username is provided, it will use "AUTH ". -# In the Redis servers side, the ACL to provide just minimal access to +# In the KeyDB servers side, the ACL to provide just minimal access to # Sentinel instances, should be configured along the following lines: # # user sentinel-user >somepassword +client +subscribe +publish \ @@ -125,7 +125,7 @@ sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 # IMPORTANT NOTE: starting with KeyDB 6.2 ACL capability is supported for -# Sentinel mode, please refer to the KeyDB website https://redis.io/topics/acl +# Sentinel mode, please refer to the Redis website https://redis.io/topics/acl # for more details. # Sentinel's ACL users are defined in the following format: @@ -137,8 +137,8 @@ sentinel down-after-milliseconds mymaster 30000 # user worker +@admin +@connection ~* on >ffa9203c493aa99 # # For more information about ACL configuration please refer to the Redis -# website at https://redis.io/topics/acl and redis server configuration -# template redis.conf. +# website at https://redis.io/topics/acl and KeyDB server configuration +# template keydb.conf. # ACL LOG # @@ -156,9 +156,9 @@ acllog-max-len 128 # ACL file, the server will refuse to start. # # The format of the external ACL user file is exactly the same as the -# format that is used inside redis.conf to describe users. +# format that is used inside keydb.conf to describe users. # -# aclfile /etc/redis/sentinel-users.acl +# aclfile /etc/keydb/sentinel-users.acl # requirepass # @@ -168,7 +168,7 @@ acllog-max-len 128 # group with the same "requirepass" password. Check the following documentation # for more info: https://redis.io/topics/sentinel # -# IMPORTANT NOTE: starting with Redis 6.2 "requirepass" is a compatibility +# IMPORTANT NOTE: starting with KeyDB 6.2 "requirepass" is a compatibility # layer on top of the ACL system. The option effect will be just setting # the password for the default user. Clients will still authenticate using # AUTH as usually, or more explicitly with AUTH default @@ -251,7 +251,7 @@ sentinel failover-timeout mymaster 180000 # generated in the WARNING level (for instance -sdown, -odown, and so forth). # This script should notify the system administrator via email, SMS, or any # other messaging system, that there is something wrong with the monitored -# Redis systems. +# KeyDB systems. # # The script is called with just two arguments: the first is the event type # and the second the event description. @@ -261,7 +261,7 @@ sentinel failover-timeout mymaster 180000 # # Example: # -# sentinel notification-script mymaster /var/redis/notify.sh +# sentinel notification-script mymaster /var/keydb/notify.sh # CLIENTS RECONFIGURATION SCRIPT # @@ -286,7 +286,7 @@ sentinel failover-timeout mymaster 180000 # # Example: # -# sentinel client-reconfig-script mymaster /var/redis/reconfig.sh +# sentinel client-reconfig-script mymaster /var/keydb/reconfig.sh # SECURITY # @@ -297,11 +297,11 @@ sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes -# REDIS COMMANDS RENAMING +# KEYDB COMMANDS RENAMING # -# Sometimes the Redis server has certain commands, that are needed for Sentinel +# Sometimes the KeyDB server has certain commands, that are needed for Sentinel # to work correctly, renamed to unguessable strings. This is often the case -# of CONFIG and SLAVEOF in the context of providers that provide Redis as +# of CONFIG and SLAVEOF in the context of providers that provide KeyDB as # a service, and don't want the customers to reconfigure the instances outside # of the administration console. # @@ -325,7 +325,7 @@ sentinel deny-scripts-reconfig yes # HOSTNAMES SUPPORT # # Normally Sentinel uses only IP addresses and requires SENTINEL MONITOR -# to specify an IP address. Also, it requires the Redis replica-announce-ip +# to specify an IP address. Also, it requires the KeyDB replica-announce-ip # keyword to specify only IP addresses. # # You may enable hostnames support by enabling resolve-hostnames. Note From b35847e7093dd9dd2bb3bb43e5c4af6105eeae69 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Mon, 14 Jun 2021 16:09:42 +0000 Subject: [PATCH 12/15] changed redis_flags names to keydb in makefile Former-commit-id: 07273936271536e4a57efdb7a31bc34e5b8d50f1 --- .github/workflows/ci.yml | 6 +++--- src/Makefile | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9086bb701..bce8f20b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: run: | sudo apt-get update sudo apt-get -y install uuid-dev libcurl4-openssl-dev - make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' BUILD_TLS=yes -j2 + make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' BUILD_TLS=yes -j2 - name: gen-cert run: ./utils/gen-test-certs.sh - name: test-tls @@ -44,7 +44,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: make - run: make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' -j2 + run: make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' -j2 build-libc-malloc: runs-on: ubuntu-latest @@ -54,5 +54,5 @@ jobs: run: | sudo apt-get update sudo apt-get -y install uuid-dev libcurl4-openssl-dev - make REDIS_CFLAGS='-Werror' REDIS_CXXFLAGS='-Werror' MALLOC=libc -j2 + make KEYDB_CFLAGS='-Werror' KEYDB_CXXFLAGS='-Werror' MALLOC=libc -j2 diff --git a/src/Makefile b/src/Makefile index f0dea3dac..c7dfeea4d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -3,11 +3,11 @@ # This file is released under the BSD license, see the COPYING file # # The Makefile composes the final FINAL_CFLAGS and FINAL_LDFLAGS using -# what is needed for Redis plus the standard CFLAGS and LDFLAGS passed. +# what is needed for KeyDB plus the standard CFLAGS and LDFLAGS passed. # However when building the dependencies (Jemalloc, Lua, Hiredis, ...) # CFLAGS and LDFLAGS are propagated to the dependencies, so to pass -# flags only to be used when compiling / linking Redis itself REDIS_CFLAGS -# and REDIS_LDFLAGS are used instead (this is the case of 'make gcov'). +# flags only to be used when compiling / linking KeyDB itself KEYDB_CFLAGS +# and KEYDB_LDFLAGS are used instead (this is the case of 'make gcov'). # # Dependencies are stored in the Makefile.dep file. To rebuild this file # Just use 'make dep', but this is only needed by developers. @@ -85,7 +85,7 @@ ifeq ($(COMPILER_NAME),clang) LDFLAGS+= -latomic endif -# To get ARM stack traces if Redis crashes we need a special C flag. +# To get ARM stack traces if KeyDB crashes we need a special C flag. ifneq (,$(filter aarch64 armv,$(uname_M))) CFLAGS+=-funwind-tables CXXFLAGS+=-funwind-tables @@ -116,9 +116,9 @@ endif # Override default settings if possible -include .make-settings -FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS) -FINAL_CXXFLAGS=$(CXX_STD) $(WARN) $(OPT) $(DEBUG) $(CXXFLAGS) $(REDIS_CFLAGS) -FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG) +FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(KEYDB_CFLAGS) +FINAL_CXXFLAGS=$(CXX_STD) $(WARN) $(OPT) $(DEBUG) $(CXXFLAGS) $(KEYDB_CFLAGS) +FINAL_LDFLAGS=$(LDFLAGS) $(KEYDB_LDFLAGS) $(DEBUG) FINAL_LIBS+=-lm DEBUG=-g -ggdb @@ -365,9 +365,9 @@ persist-settings: distclean echo CFLAGS=$(CFLAGS) >> .make-settings echo CXXFLAGS=$(CXXFLAGS) >> .make-settings echo LDFLAGS=$(LDFLAGS) >> .make-settings - echo REDIS_CFLAGS=$(REDIS_CFLAGS) >> .make-settings - echo REDIS_CXXFLAGS=$(REDIS_CXXFLAGS) >> .make-settings - echo REDIS_LDFLAGS=$(REDIS_LDFLAGS) >> .make-settings + echo KEYDB_CFLAGS=$(KEYDB_CFLAGS) >> .make-settings + echo KEYDB_CXXFLAGS=$(KEYDB_CXXFLAGS) >> .make-settings + echo KEYDB_LDFLAGS=$(KEYDB_LDFLAGS) >> .make-settings echo PREV_FINAL_CFLAGS=$(FINAL_CFLAGS) >> .make-settings echo PREV_FINAL_CXXFLAGS=$(FINAL_CXXFLAGS) >> .make-settings echo PREV_FINAL_LDFLAGS=$(FINAL_LDFLAGS) >> .make-settings @@ -468,7 +468,7 @@ bench: $(REDIS_BENCHMARK_NAME) $(MAKE) CXXFLAGS="-m32" CFLAGS="-m32" LDFLAGS="-m32" gcov: - $(MAKE) REDIS_CXXFLAGS="-fprofile-arcs -ftest-coverage -DCOVERAGE_TEST" REDIS_CFLAGS="-fprofile-arcs -ftest-coverage -DCOVERAGE_TEST" REDIS_LDFLAGS="-fprofile-arcs -ftest-coverage" + $(MAKE) KEYDB_CXXFLAGS="-fprofile-arcs -ftest-coverage -DCOVERAGE_TEST" KEYDB_CFLAGS="-fprofile-arcs -ftest-coverage -DCOVERAGE_TEST" KEYDB_LDFLAGS="-fprofile-arcs -ftest-coverage" noopt: $(MAKE) OPTIMIZATION="-O0" @@ -477,7 +477,7 @@ valgrind: $(MAKE) OPTIMIZATION="-O0" USEASM="false" MALLOC="libc" CFLAGS="-DSANITIZE" CXXFLAGS="-DSANITIZE" helgrind: - $(MAKE) OPTIMIZATION="-O0" MALLOC="libc" CFLAGS="-D__ATOMIC_VAR_FORCE_SYNC_MACROS" REDIS_CFLAGS="-I/usr/local/include" REDIS_LDFLAGS="-L/usr/local/lib" + $(MAKE) OPTIMIZATION="-O0" MALLOC="libc" CFLAGS="-D__ATOMIC_VAR_FORCE_SYNC_MACROS" KEYDB_CFLAGS="-I/usr/local/include" KEYDB_LDFLAGS="-L/usr/local/lib" src/help.h: @../utils/generate-command-help.rb > help.h From d10336b0079a03788ef1414c22c4a95355f0b189 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Thu, 8 Jul 2021 02:46:42 +0000 Subject: [PATCH 13/15] various branding and cleanup fixes Former-commit-id: e3c619eca4755c96af83e1959a6ea5ba95734e93 --- keydb.conf | 6 +-- src/server.cpp | 2 +- tests/instances.tcl | 2 +- tests/integration/psync2.tcl | 2 +- tests/support/server.tcl | 2 +- tests/unit/other.tcl | 90 ++++++++++++++++++------------------ tests/unit/tls.tcl | 4 +- utils/gen-test-certs.sh | 12 ++--- 8 files changed, 59 insertions(+), 61 deletions(-) diff --git a/keydb.conf b/keydb.conf index 3874c5acd..d380d139f 100644 --- a/keydb.conf +++ b/keydb.conf @@ -141,12 +141,12 @@ tcp-keepalive 300 # server to connected clients, masters or cluster peers. These files should be # PEM formatted. # -# tls-cert-file redis.crt -# tls-key-file redis.key +# tls-cert-file keydb.crt +# tls-key-file keydb.key # Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange: # -# tls-dh-params-file redis.dh +# tls-dh-params-file keydb.dh # Configure a CA certificate(s) bundle or directory to authenticate TLS/SSL # clients and peers. Redis requires an explicit configuration of at least one diff --git a/src/server.cpp b/src/server.cpp index 045938657..841d35bad 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -6830,7 +6830,7 @@ int main(int argc, char **argv) { serverLog(LL_WARNING, "Failed to test the kernel for a bug that could lead to data corruption during background save. " "Your system could be affected, please report this error."); if (!checkIgnoreWarning("ARM64-COW-BUG")) { - serverLog(LL_WARNING,"Redis will now exit to prevent data corruption. " + serverLog(LL_WARNING,"KeyDB will now exit to prevent data corruption. " "Note that it is possible to suppress this warning by setting the following config: ignore-warnings ARM64-COW-BUG"); exit(1); } diff --git a/tests/instances.tcl b/tests/instances.tcl index ce5518231..ae1835139 100644 --- a/tests/instances.tcl +++ b/tests/instances.tcl @@ -92,7 +92,7 @@ proc spawn_instance {type base_port count {conf {}} {base_conf_file ""}} { puts $cfg [format "tls-key-file %s/../../tls/server.key" [pwd]] puts $cfg [format "tls-client-cert-file %s/../../tls/client.crt" [pwd]] puts $cfg [format "tls-client-key-file %s/../../tls/client.key" [pwd]] - puts $cfg [format "tls-dh-params-file %s/../../tls/redis.dh" [pwd]] + puts $cfg [format "tls-dh-params-file %s/../../tls/keydb.dh" [pwd]] puts $cfg [format "tls-ca-cert-file %s/../../tls/ca.crt" [pwd]] puts $cfg "loglevel debug" } else { diff --git a/tests/integration/psync2.tcl b/tests/integration/psync2.tcl index 8459d2378..2c66ae880 100644 --- a/tests/integration/psync2.tcl +++ b/tests/integration/psync2.tcl @@ -4,7 +4,7 @@ proc show_cluster_status {} { # The following is the regexp we use to match the log line # time info. Logs are in the following form: # - # 11296:M 25 May 2020 17:37:14.652 # Server initialized + # 11296:11296:M 25 May 2020 17:37:14.652 # Server initialized set log_regexp {^[0-9]+:^[0-9]+:[A-Z] [0-9]+ [A-z]+ [0-9]+ ([0-9:.]+) .*} set repl_regexp {(master|repl|sync|backlog|meaningful|offset)} diff --git a/tests/support/server.tcl b/tests/support/server.tcl index c06dd0561..701ae4aa2 100644 --- a/tests/support/server.tcl +++ b/tests/support/server.tcl @@ -355,7 +355,7 @@ proc start_server {options {code undefined}} { dict set config "tls-key-file" [format "%s/tests/tls/server.key" [pwd]] dict set config "tls-client-cert-file" [format "%s/tests/tls/client.crt" [pwd]] dict set config "tls-client-key-file" [format "%s/tests/tls/client.key" [pwd]] - dict set config "tls-dh-params-file" [format "%s/tests/tls/redis.dh" [pwd]] + dict set config "tls-dh-params-file" [format "%s/tests/tls/keydb.dh" [pwd]] dict set config "tls-ca-cert-file" [format "%s/tests/tls/ca.crt" [pwd]] dict set config "loglevel" "debug" } diff --git a/tests/unit/other.tcl b/tests/unit/other.tcl index 7502ed22b..b4f49804d 100644 --- a/tests/unit/other.tcl +++ b/tests/unit/other.tcl @@ -62,57 +62,55 @@ start_server {overrides {save ""} tags {"other"}} { } {*index is out of range*} tags {consistency} { - if {true} { - if {$::accurate} {set numops 10000} else {set numops 1000} - test {Check consistency of different data types after a reload} { - r flushdb - createComplexDataset r $numops - set dump [csvdump r] - set sha1 [r debug digest] - r debug reload - set sha1_after [r debug digest] - if {$sha1 eq $sha1_after} { - set _ 1 - } else { - set newdump [csvdump r] - puts "Consistency test failed!" - puts "You can inspect the two dumps in /tmp/repldump*.txt" + if {$::accurate} {set numops 10000} else {set numops 1000} + test {Check consistency of different data types after a reload} { + r flushdb + createComplexDataset r $numops + set dump [csvdump r] + set sha1 [r debug digest] + r debug reload + set sha1_after [r debug digest] + if {$sha1 eq $sha1_after} { + set _ 1 + } else { + set newdump [csvdump r] + puts "Consistency test failed!" + puts "You can inspect the two dumps in /tmp/repldump*.txt" - set fd [open /tmp/repldump1.txt w] - puts $fd $dump - close $fd - set fd [open /tmp/repldump2.txt w] - puts $fd $newdump - close $fd + set fd [open /tmp/repldump1.txt w] + puts $fd $dump + close $fd + set fd [open /tmp/repldump2.txt w] + puts $fd $newdump + close $fd - set _ 0 - } - } {1} + set _ 0 + } + } {1} - test {Same dataset digest if saving/reloading as AOF?} { - r config set aof-use-rdb-preamble no - r bgrewriteaof - waitForBgrewriteaof r - r debug loadaof - set sha1_after [r debug digest] - if {$sha1 eq $sha1_after} { - set _ 1 - } else { - set newdump [csvdump r] - puts "Consistency test failed!" - puts "You can inspect the two dumps in /tmp/aofdump*.txt" + test {Same dataset digest if saving/reloading as AOF?} { + r config set aof-use-rdb-preamble no + r bgrewriteaof + waitForBgrewriteaof r + r debug loadaof + set sha1_after [r debug digest] + if {$sha1 eq $sha1_after} { + set _ 1 + } else { + set newdump [csvdump r] + puts "Consistency test failed!" + puts "You can inspect the two dumps in /tmp/aofdump*.txt" - set fd [open /tmp/aofdump1.txt w] - puts $fd $dump - close $fd - set fd [open /tmp/aofdump2.txt w] - puts $fd $newdump - close $fd + set fd [open /tmp/aofdump1.txt w] + puts $fd $dump + close $fd + set fd [open /tmp/aofdump2.txt w] + puts $fd $newdump + close $fd - set _ 0 - } - } {1} - } + set _ 0 + } + } {1} } test {EXPIRES after a reload (snapshot + append only file rewrite)} { diff --git a/tests/unit/tls.tcl b/tests/unit/tls.tcl index 29fe39fbf..7dff47eb4 100644 --- a/tests/unit/tls.tcl +++ b/tests/unit/tls.tcl @@ -100,8 +100,8 @@ start_server {tags {"tls"}} { set master_port [srv 0 port] # Use a non-restricted client/server cert for the replica - set redis_crt [format "%s/tests/tls/redis.crt" [pwd]] - set redis_key [format "%s/tests/tls/redis.key" [pwd]] + set redis_crt [format "%s/tests/tls/keydb.crt" [pwd]] + set redis_key [format "%s/tests/tls/keydb.key" [pwd]] start_server [list overrides [list tls-cert-file $redis_crt tls-key-file $redis_key] \ omit [list tls-client-cert-file tls-client-key-file]] { diff --git a/utils/gen-test-certs.sh b/utils/gen-test-certs.sh index 60814483b..265255c42 100755 --- a/utils/gen-test-certs.sh +++ b/utils/gen-test-certs.sh @@ -3,10 +3,10 @@ # Generate some test certificates which are used by the regression test suite: # # tests/tls/ca.{crt,key} Self signed CA certificate. -# tests/tls/redis.{crt,key} A certificate with no key usage/policy restrictions. +# tests/tls/keydb.{crt,key} A certificate with no key usage/policy restrictions. # tests/tls/client.{crt,key} A certificate restricted for SSL client usage. # tests/tls/server.{crt,key} A certificate restricted fro SSL server usage. -# tests/tls/redis.dh DH Params file. +# tests/tls/keydb.dh DH Params file. generate_cert() { local name=$1 @@ -19,7 +19,7 @@ generate_cert() { [ -f $keyfile ] || openssl genrsa -out $keyfile 2048 openssl req \ -new -sha256 \ - -subj "/O=Redis Test/CN=$cn" \ + -subj "/O=KeyDB Test/CN=$cn" \ -key $keyfile | \ openssl x509 \ -req -sha256 \ @@ -38,7 +38,7 @@ openssl req \ -x509 -new -nodes -sha256 \ -key tests/tls/ca.key \ -days 3650 \ - -subj '/O=Redis Test/CN=Certificate Authority' \ + -subj '/O=KeyDB Test/CN=Certificate Authority' \ -out tests/tls/ca.crt cat > tests/tls/openssl.cnf <<_END_ @@ -53,6 +53,6 @@ _END_ generate_cert server "Server-only" "-extfile tests/tls/openssl.cnf -extensions server_cert" generate_cert client "Client-only" "-extfile tests/tls/openssl.cnf -extensions client_cert" -generate_cert redis "Generic-cert" +generate_cert keydb "Generic-cert" -[ -f tests/tls/redis.dh ] || openssl dhparam -out tests/tls/redis.dh 2048 +[ -f tests/tls/keydb.dh ] || openssl dhparam -out tests/tls/keydb.dh 2048 From 502b9ec2ce39390c0b203860b3ee06a2a441fd00 Mon Sep 17 00:00:00 2001 From: christianEQ Date: Wed, 14 Jul 2021 21:51:44 +0000 Subject: [PATCH 14/15] added REDIS_CFLAGS to makefile for backwards compatibility Former-commit-id: b2fb4f4b9bba28f45828ead5670fc206a4c2a2f6 --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index c7dfeea4d..9a0d282c6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -116,8 +116,8 @@ endif # Override default settings if possible -include .make-settings -FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(KEYDB_CFLAGS) -FINAL_CXXFLAGS=$(CXX_STD) $(WARN) $(OPT) $(DEBUG) $(CXXFLAGS) $(KEYDB_CFLAGS) +FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(KEYDB_CFLAGS) $(REDIS_CFLAGS) +FINAL_CXXFLAGS=$(CXX_STD) $(WARN) $(OPT) $(DEBUG) $(CXXFLAGS) $(KEYDB_CFLAGS) $(REDIS_CFLAGS) FINAL_LDFLAGS=$(LDFLAGS) $(KEYDB_LDFLAGS) $(DEBUG) FINAL_LIBS+=-lm DEBUG=-g -ggdb From e400c205ce200fad71488004c772c4dd463b9c3e Mon Sep 17 00:00:00 2001 From: christianEQ Date: Thu, 15 Jul 2021 20:14:14 +0000 Subject: [PATCH 15/15] fix warnings for mac build Former-commit-id: 570fbd014944a655f6c8e7216f2b9226f378c7c7 --- src/Makefile | 2 +- src/connection.cpp | 3 +++ src/replication.cpp | 2 +- src/t_set.cpp | 6 +++--- src/t_stream.cpp | 4 ++-- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Makefile b/src/Makefile index 179bb46e7..37f7ba917 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,7 +29,7 @@ ifneq (,$(findstring FreeBSD,$(uname_S))) STD+=-Wno-c11-extensions endif endif -WARN=-Wall -W -Wno-missing-field-initializers +WARN=-Wall -W -Wno-missing-field-initializers -Wno-address-of-packed-member -Wno-atomic-alignment OPT=$(OPTIMIZATION) # Detect if the compiler supports C11 _Atomic diff --git a/src/connection.cpp b/src/connection.cpp index 11d1e0809..e72cc8451 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -437,6 +437,9 @@ void connSetThreadAffinity(connection *conn, int cpu) { { serverLog(LL_WARNING, "Failed to set socket affinity"); } +#else + (void)conn; + (void)cpu; #endif } diff --git a/src/replication.cpp b/src/replication.cpp index e01124fb1..f29cdb184 100644 --- a/src/replication.cpp +++ b/src/replication.cpp @@ -4803,7 +4803,7 @@ void replicationNotifyLoadedKey(redisDb *db, robj_roptr key, robj_roptr val, lon redisObjectStack objTtl; initStaticStringObject(objTtl, sdscatprintf(sdsempty(), "%lld", expire)); redisObjectStack objMvcc; - initStaticStringObject(objMvcc, sdscatprintf(sdsempty(), "%lu", mvccFromObj(val))); + initStaticStringObject(objMvcc, sdscatprintf(sdsempty(), "%" PRIu64, mvccFromObj(val))); redisObject *argv[5] = {shared.mvccrestore, key.unsafe_robjcast(), &objMvcc, &objTtl, &objPayload}; replicationFeedSlaves(g_pserver->slaves, db - g_pserver->db, argv, 5); diff --git a/src/t_set.cpp b/src/t_set.cpp index 6aa0cedc5..4d1f4420e 100644 --- a/src/t_set.cpp +++ b/src/t_set.cpp @@ -512,7 +512,7 @@ void spopWithCountCommand(client *c) { const char *sdsele; robj *objele; int encoding; - int64_t llele; + int64_t llele = 0; unsigned long remaining = size-count; /* Elements left after SPOP. */ /* If we are here, the number of requested elements is less than the @@ -664,7 +664,7 @@ void srandmemberWithCountCommand(client *c) { int uniq = 1; robj_roptr set; const char *ele; - int64_t llele; + int64_t llele = 0; int encoding; dict *d; @@ -813,7 +813,7 @@ void srandmemberWithCountCommand(client *c) { void srandmemberCommand(client *c) { robj_roptr set; const char *ele; - int64_t llele; + int64_t llele = 0; int encoding; if (c->argc == 3) { diff --git a/src/t_stream.cpp b/src/t_stream.cpp index 828b9353b..d82044deb 100644 --- a/src/t_stream.cpp +++ b/src/t_stream.cpp @@ -842,7 +842,7 @@ int64_t streamTrim(stream *s, streamAddTrimArgs *args) { /* Trims a stream by length. Returns the number of deleted items. */ int64_t streamTrimByLength(stream *s, long long maxlen, int approx) { - streamAddTrimArgs args = {0}; + streamAddTrimArgs args = {{0}}; args.trim_strategy = TRIM_STRATEGY_MAXLEN; args.approx_trim = approx; args.limit = approx ? 100 * g_pserver->stream_node_max_entries : 0; @@ -852,7 +852,7 @@ int64_t streamTrimByLength(stream *s, long long maxlen, int approx) { /* Trims a stream by minimum ID. Returns the number of deleted items. */ int64_t streamTrimByID(stream *s, streamID minid, int approx) { - streamAddTrimArgs args = {0}; + streamAddTrimArgs args = {{0}}; args.trim_strategy = TRIM_STRATEGY_MINID; args.approx_trim = approx; args.limit = approx ? 100 * g_pserver->stream_node_max_entries : 0;