Redis 4 参数解释 daemonize 是否以后台守护的方式运行。 默认为no,需调整为yes。 tcp-backlog TCP三次握手后,会将接受的连接放入队列中,tcpbacklog就是队列的大小,它在Redis中的默认值是511,该值会受到操作系统的影响。 建议将Linux中somaxconn和tcp_max_syn_backlog的值调高,该参数可设置为65535。 timeout 在客户端空闲N秒后关闭连接,默认为0,表示不启用。若短连接较多,建议设置为3600。 tcp-keepalive 检测TCP连接活性的周期,默认值为0,也就是不进行检测,如果需要设置,建议为60,那么Redis会每隔60秒对它创建的TCP连接进行活性检测,防止大量死连接占用系统资源。 loglevel 日志记录等级:debug、verbose、notice、warning。默认notice等级,无需调整。 logfile 指定日志路径及名称。 save 在一段时间内发生了一定数量的写操作,则会根据配置触发持久化。默认值如下: save 900 1 save 300 10 save 60 10000 主库建议设置为save ,关闭持久化 stop-writes-on-bgsave-error 开启该参数,在启用RDB持久化的情况下,如果最新的bgsave失败,redis将会停止接受写操作。 默认开启,建议关闭。 rdbcompression 是否在生成RDB文件时使用LZF来压缩字符串对象,开启将提高CPU消耗。若关闭可能会导致您的数据集占用内存升高。 默认开启。 rdbchecksum 在RDB的5版本之后在RDB文件的末尾添加了一个CRC64校验和,这会提高RDB文件的抗损坏性,但是开启该参数会导致RDB在保存和读取的时候使redis的性能受到影响(大约10%);关闭该参数,会在文件末尾将校验和设为0,redis会跳过该项的检测来提高性能。 默认开启。 dbfilename RDB文件名,不可包含路径。 dir 工作目录,RDB文件存放在该目录下。 slave-serve-stale-data 在从库失去与主库的连接时,从库的动作;如果为yes,从库仍然会响应客户端的请求,即便有些数据可能已经过期,或者该从库第一次连接主库,数据集仍然为为空;如果设置为no,该从库会对客户端的所有请求返回error "SYNC with master in progress",但是INFO和SLAVEOF命令仍然可用。 默认开启。 slave-read-only 从库开启只读模式。默认开启。 建议开启避免主从数据不一致。 repl-diskless-sync 复制同步策略;Disk-backed OR Diskless; 1.Disk-backed:redis主进程将会新建一个进程将RDB文件写到磁盘上,之后再由redis父进程增量的传送到从库。 2.Diskless:redis主进程创建一个新进程,该进程会直接将RDB通过网络写入从库的socket,不需要接触磁盘。 默认为no,即Disk-backed模式,建议使用默认值。 repl-diskless-sync-delay 配置Diskless的情况下设置服务器的延迟等待,以便使更多的从库连接到主库进行并行复制(所有连接过来的从库都将共享一个复制缓冲区),一旦开始复制,主库就不在处理其他之后连接过来的从库请求。 默认5秒。 repl-disable-tcp-nodelay 如果选择“yes”,Redis将使用更少的TCP包和更少的带宽将数据发送给从库;但是这可能会增加从库的延迟,在使用默认配置的Linux内核中,延迟最多可达40毫秒。 如果您选择“no”,从库的延迟将会降低,但是更多的带宽将用于复制。 默认关闭。 repl-backlog-size 设置复制缓冲区的大小。当从库与主库连接断开时,该backlog缓冲区将会存储从库未同步的数据,一遍从库再次连接到主库时不在需要全量同步,只需要部分同步即可。 该缓冲区设置的越大,容忍从库断开的时间就越长。 该缓冲区会在至少连接了一个从库时才会分配。 默认为1M,建议设置为1~2G。 repl-backlog-ttl 当redis主库在一段时间N内不再有从库连接,那么将会把backlog释放;该值设置为0表示永不释放backlog。 默认值为3600. slave-priority 从库优先级,哨兵(sentinel)会根据该值选择新主,数值越低,优先级越高。 默认值为100. min-slaves-to-write N min-slaves-max-lag M 如果连接的从服务器少于N个,延迟小于或等于M秒,那么主服务器就有可能停止接受写操作。 这两个参数设置任何一个为0即可禁用该特性。 默认不开启该特性。 maxclients 最大连接数,默认为10000. maxmemory 内存最大使用限制。当redis的内存使用达到该限制时,redis将根据清除策略来删除key;如果此时redis不能删除key(比如有写操作的阻塞),或者策略被设置为noeviction,redis将会对需要更多内存的命令进行错误响应,但仍然可读。 默认不做限制。 具体应根据物理内存大小以及单机部署redis实例数量来确定,应保证服务器剩余30~40%内存空间,单实例最大不建议超过20G maxmemory-policy redis的内存使用达到maxmemory的限制时,可以采取的内存清除策略。 volatile-lru:使用LRU算法删除过期键 allkeys-lru:使用LRU算法删除所有键(包括未过期的键) volatile-random:随机删除过期键 allkeys-random:随机删除任意键 volatile-ttl:删除最近过期的键 noeviction:不删除任何键,只是在有写入请求时返回错误。 默认为noeviction。 缓存业务的场景下,建议设置为allkeys-lru/ volatile-lru/ volatile-lfu/ allkeys-lfu appendonly 是否开启AOF,默认为关闭。建议主节点关闭。 appendfilename AOF日志的文件名。 appendfsync AOF写入磁盘的方式。 always:每次写操作都会落盘 everysec:每秒一次落盘 no:redis不做控制,由操作系统来控制落盘,一般为30s。 默认为everysec,平衡性能与安全性。 auto-aof-rewrite-percentage auto-aof-rewrite-min-size 自动重写AOF文件。当aof文件增长到指定数值时,redis会自动隐式调用bgrewriteaof来重写aof文件。 默认百分比为100,大小为64mb,建议设置auto-aof-rewrite-min-size为2G。 slowlog-log-slower-than 记录超过该值的慢查询的信息,单位是微秒。 默认值为10000,建议设置为1000。 slowlog-max-len 记录慢日志的队列的长度。 默认为128,建议设置为1024。 client-output-buffer-limit normal 普通客户端缓冲区限制。默认无限制。 client-output-buffer-limit slave 主节点会为每个从节点单独建立一条连接用于命令复制,当主从节点之间网络延迟较高或主节点挂载大量从节点时,这部分内存消耗将占用很大一部分。 默认设置 256mb 64mb 60 client-output-buffer-limit pubsub 当使用发布订阅功能时,连接客户端使用单独的输出缓冲区,当订阅服务的消息生产快于消费速度时,输出缓冲区会产生积压造成输出缓冲区空间溢出。 默认设置 32mb 8mb 60 cluster-require-full-coverage 默认为yes,表示Redis Cluster集群中某段slot异常不可用时集群拒绝对外提供服务,建议设置为no,避免部分分片异常影响整个集群的使用。 requirepass 配置密码,要求任何客户端在发出请求时都需要提供password。(注意:由于redis的运行速度非常快,所以需要设置一个非常强的密码) masterauth 当主库开启上面的参数时,从库连接主库需要通过该参数提供验证信息。 rename-command CONFIG "" 将redis的命令重命名为其他字符串,例如将一些删库的危险操作禁用:FLUSHALL、FLUSHDB bind 指定redis server监听的ip,可指定多个,用空格分离。