redis配置说明
################################## INCLUDES ################################### # 包含的其他配置:主要用于多个实例时,共同部分的模板化 # include /path/to/local.conf # include /path/to/other.conf ################################## MODULES ##################################### # 扩展模块加载 # loadmodule /path/to/my_module.so # loadmodule /path/to/other_module.so ################################## NETWORK ##################################### # 绑定IP访问 bind 0.0.0.0 # 保护模式,没有bind和requirepass时只能本地访问 protected-mode yes # 端口 port 6379 # TCP连接队列长度(3次握手长度),必须不大于Linux系统定义的/proc/sys/net/core/somaxconn tcp-backlog 511 # 配置unix socket来让redis支持监听本地连接 # unixsocket /tmp/redis.sock # 配置unix socket使用文件的权限 # unixsocketperm 700 # 此参数为设置客户端空闲超过timeout,服务端会断开连接,为0则服务端不会主动断开连接,不能小于0 timeout 0 # tcp keepalive参数。 # 如果设置不为0,就使用配置tcp的SO_KEEPALIVE值。 # 使用keepalive有两个好处:检测挂掉的对端。降低中间设备出问题而导致网络看似连接却已经与对端端口的问题。 # 在Linux内核中,设置了keepalive,redis会定时给对端发送ack。检测到对端关闭需要两倍的设置值 tcp-keepalive 300 ################################# GENERAL ##################################### # 后台执行 daemonize no # 设置是否监管redis守护进程,选项no不监督,upstart或systemd选项为监督,默认不监督 supervised no # PID文件 pidfile /var/run/redis_6379.pid # 日志级别 debug(开发测试)/verbose(提供更多有用信息)/notice(默认)/warning(关键消息) loglevel notice # 日志文件,后台运行时,不设置为/dev/null logfile "" # 开启syslog记录功能 # syslog-enabled no # syslog身份ID. # syslog-ident redis # 日志来源. # syslog-facility local0 # 数据库个数 databases 16 # redis图标 always-show-logo yes ################################ SNAPSHOTTING ################################ # 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) # 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化) # 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化) save 900 1 save 300 10 save 60 10000 # 当RDB持久化出现错误后,是否依然进行继续进行工作 stop-writes-on-bgsave-error yes # 使用压缩rdb文件,rdb文件压缩使用LZF压缩算法 rdbcompression yes # 是否校验rdb文件。从rdb格式的第五个版本开始,在rdb文件的末尾会带上CRC64的校验。 rdbchecksum yes # RDB文件名 dbfilename dump.rdb # 数据目录 dir /data ################################# REPLICATION ################################# # slave 复制对应的master # replicaof <masterip> <masterport> # master认证密码 # masterauth <master-password> # 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式: # 1) 如果replica-serve-stale-data设置为yes(默认设置),从库会继续响应客户端的请求。 # 2) 如果replica-serve-stale-data设置为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个错误"SYNC with master in progress" replica-serve-stale-data yes # 从库是否只读 replica-read-only yes # 是否使用磁盘交互模式同步,disk和socket repl-diskless-sync no # diskless复制的延迟时间 repl-diskless-sync-delay 5 # slave ping时间间隔 # repl-ping-replica-period 10 # 复制连接超时时间 # repl-timeout 60 # 是否禁止复制tcp链接的tcp nodelay参数 repl-disable-tcp-nodelay no # 复制缓冲区大小 # repl-backlog-size 1mb # 缓冲区释放时间间隔 # repl-backlog-ttl 3600 # master不可用时,选举优先级 replica-priority 100 # slave数量少于设定,master禁止写入 # min-replicas-to-write 3 # 延时小于设定,认为slave健康 # min-replicas-max-lag 10 # Redis master 可以通过不同方式列出连接上来的 replicas 节点的地址和端口 # replica-announce-ip 5.5.5.5 # replica-announce-port 1234 ################################## SECURITY ################################### # 认证密码 requirepass xbd # 把危险的命令给修改成其他名称 # rename-command CONFIG "" ################################### CLIENTS #################################### # 最大连接数 # maxclients 10000 ############################## MEMORY MANAGEMENT ################################ # 最大内存 maxmemory 2GB # volatile-lru -> 在设置过过期时间中移出最少使用的key # allkeys-lru -> 移出任何最少使用的key # volatile-lfu -> 在设置过过期时间中移出最常用的key # allkeys-lfu -> 移出任何最常用的key # volatile-random -> 在设置过过期时间中随机的key # allkeys-random -> 随机移出任何key # volatile-ttl -> 在设置过过期时间中移出快要到期的key # noeviction -> 返回错误 # # LRU 最少使用 # LFU 最常用 # 默认 noeviction maxmemory-policy allkeys-lru # 最大样本数,淘汰判断 # maxmemory-samples 5 # 副本忽略最大内存限制 # replica-ignore-maxmemory yes ############################# LAZY FREEING #################################### # 针对redis内存使用达到maxmeory,并设置有淘汰策略时; # 在被动淘汰键时,是否采用lazy free机制 默认值:no lazyfree-lazy-eviction no # 针对设置有TTL的键,达到过期后,被redis清理删除时是否采用lazy free机制; # 此场景建议开启,因TTL本身是自适应调整的速度。默认值:no lazyfree-lazy-expire no # 针对有些指令在处理已存在的键时,会带有一个隐式的DEL键的操作。 # 如rename命令,当目标键已存在,redis会先删除目标键,如果这些目标键是一个big key,那就会引入阻塞删除的性能问题。 # 此参数设置就是解决这类问题,建议可开启。默认值:no lazyfree-lazy-server-del no # 在复制过程中,当副本与其主副本执行完全重新同步时,整个数据库的内容是否将被删除 replica-lazy-flush no ############################## APPEND ONLY MODE ############################### # AOF持久化是否开启 appendonly no # 文件名称 appendfilename appendonly.aof # aof持久化策略的配置 # no 表示不执行fsync,由操作系统保证数据同步到磁盘,速度最快。(Linux系统默认30秒同步磁盘) # always 表示每次写入都执行fsync,以保证数据同步到磁盘,数据完整度最高,性能最差 # everysec 表示每秒执行一次fsync,可能会导致丢失这1s数据,速度和数据完整度的折中策略 appendfsync everysec # 当主进程在进行向磁盘的写操作时,将会阻止其它的fsync调用 no-appendfsync-on-rewrite no # Redis能够在AOF日志大小按指定的百分比增长时自动重写日志文件 auto-aof-rewrite-percentage 100 # 设置允许重写的最小aof文件大小,避免了达到约定百分比但尺寸仍然很小的情况还要重写 auto-aof-rewrite-min-size 64mb # 是否加载不完整的aof文件来进行启动 aof-load-truncated yes # 在重写AOF文件时,Redis能够在AOF文件中使用RDB前导码以加快重写和恢复 aof-use-rdb-preamble yes ################################ LUA SCRIPTING ############################### # lua最大执行时间 lua-time-limit 5000 ################################ REDIS CLUSTER ############################### # 集群开启状态 cluster-enabled yes # 集群配置文件,自动写入 cluster-config-file nodes-6379.conf # 集群几点超时时间 cluster-node-timeout 15000 # 当slave和master失联时间超过(node-timeout * replica-validity-factor) + repl-ping-replica-period + node-timeout时间时,就不会自动failover。 # 因为此时slave上的数据可能会比较旧了。这种情况一般发生在主从出现分区的时候。 cluster-replica-validity-factor 10 # 最少副本数,如果存在大于指定数量的副本,其他不够则发生副本移动。 cluster-migration-barrier 1 # 控制集群高可用,设置为yes,则允许在分片不可用或者集群路由未完全分配的情况下,其他的分片仍然提供服务 cluster-require-full-coverage yes # 选项设置为yes时,会阻止replicas尝试对其master在主故障期间进行故障转移 # 然而,master仍然可以执行手动故障转移,如果强制这样做的话。 cluster-replica-no-failover no ########################## CLUSTER DOCKER/NAT support ######################## # 物理及网络ip,比如docker使用时 # cluster-announce-ip 10.1.1.5 # cluster-announce-port 6379 # cluster-announce-bus-port 6380 ################################## SLOW LOG ################################### # 慢日志记录,阀值 slowlog-log-slower-than 10000 # 慢日志最大长度 slowlog-max-len 128 ################################ LATENCY MONITOR ############################## # 收集可能导致延时的数据根源,关闭监控 latency-monitor-threshold 0 ############################# EVENT NOTIFICATION ############################## # 事件通知 notify-keyspace-events "" ############################### ADVANCED CONFIG ############################### # 当条目数量较少且最大不会超过给定阀值时,哈希编码将使用一个很高效的内存数据结构,阀值由以下参数来进行配置。 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 # list最大长度 # -5: max size: 64 Kb <-- not recommended for normal workloads # -4: max size: 32 Kb <-- not recommended # -3: max size: 16 Kb <-- probably not recommended # -2: max size: 8 Kb <-- good # -1: max size: 4 Kb <-- good list-max-ziplist-size -2 # 不压缩 list-compress-depth 0 # 设置集合使用这种特殊编码方式的size限制 set-max-intset-entries 512 # 有序集合也会使用一种特殊的编码方式来节省空间,这种特殊的编码方式只用于这个有序集合的长度和元素均低于以下参数设置的值时 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 # 大于这个值,hyperloglog使用稠密结构 小于等于这个值,使用稀疏结构 hll-sparse-max-bytes 3000 # stream 的最大内存开销字节数 stream-node-max-bytes 4096 # stream 的最大项数量 stream-node-max-entries 100 # 指定是否激活重置哈希 activerehashing yes # 因为某些原因,client不能足够快的从server读取数据,那client的输出缓存限制可能会使client失联。 # 这个限制可用于3种不同的client种类,分别是:normal、slave和pubsub。 client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 # 客户端查询缓存大小限制 # client-query-buffer-limit 1gb # 批量请求大小的限制 # proto-max-bulk-len 512mb # redis通过指定的hz参数去检查和执行任务数量 hz 10 # 是否开启动态hz dynamic-hz yes # 当一个子进程要改写AOF文件,如果启用,那文件将会在每产生32MB数据时进行同步,这样提交增量文件到磁盘时可以避免出现比较大的延迟。 aof-rewrite-incremental-fsync yes # 当Redis 保存RDB文件时,如果这项启用, Redis 会每生成 32 MB 数据就执行一次 fsync 操作 # 通过这种方式将数据分批提交到硬盘可以避免高延迟峰值。 rdb-save-incremental-fsync yes # 简单的说 数值越高 log频率越低 # lfu-log-factor 10 # 延时时间 # lfu-decay-time 1 ########################### ACTIVE DEFRAGMENTATION ####################### # 仅在您编译Redis以使用我们随Redis源代码提供的Jemalloc副本时才有效 # activedefrag yes # 开启内存碎片整理的最小内存碎片字节数 # active-defrag-ignore-bytes 100mb # 启动碎片整理的最低碎片百分比 # active-defrag-threshold-lower 10 # 启动碎片整理的最高碎片百分比 # active-defrag-threshold-upper 100 # 最小努力cpu百分比,用来做内存碎片整理 # active-defrag-cycle-min 5 # 最大努力cpu百分比,用来做内存碎片整理 # active-defrag-cycle-max 75 # 用于主动的内存碎片整理的set/hash/zset/list 中的最大数量的项 # active-defrag-max-scan-fields 1000 # 设置redis服务器i/o线程数 # server_cpulist 0-7:2 # # 设置bio线程数 # bio_cpulist 1,3 # # 设置aof重写子进程 # aof_rewrite_cpulist 8-11 # # 设置bgsave子进程 # bgsave_cpulist 1,10-11 # 忽略警告 # ignore-warnings ARM64-COW-BUG