Redis6-redis.conf配置文件说明

root
233
文章
0
评论
2021年3月3日18:53:06 评论 10803字阅读36分0秒

Redis6-redis.conf配置文件说明

###NETWORK(网络)###(需记)
bind
默认配置项:bind 127.0.0.1
说明:Redis服务监听地址,用于Redis客户端连接,默认只监听本机回环地址。
默认配置项:bind 127.0.0.1
protected-mode
默认配置项:protected-mode yes
说明:Protected模式是一层安全保护。默认是开启的,配置bind ip或者设置访问密码访问,关闭后,外部网络可以直接访问。
prot
默认配置项:port 6379
说明:Redis监听端口,默认为6379
tcp-backlog
默认配置项:tcp-backlog 511
说明:此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511。
而Linux的默认参数值是128,当系统并发量大并且客户端速度缓慢的时候,建议修改值大于511。
unixsocket
默认配置项:
unixsocket   /tmp/redis.sock
说明:指定 unix socket 的路径
unixsocketperm
默认配置项:unixsocketperm 700
说明:指定 unix socket file 的权限。
timeout
默认配置项:timeout 0
说明:在客户端闲置多少秒后断开连接。
tcp-keepalive
默认配置项:tcp-keepalive 300
说明:用来定时向client发送tcp_ack包来探测client是否存活的
###GENERAL(通用)###(精通)
daemonize
默认配置项:daemonize no
说明:默认情况下,Redis不作为守护进程运行。如果你需要的话,用yes。
supervised
默认配置项:supervised no
说明:可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。
pidfile
默认配置项:pidfile /var/run/redis_6379.pid
说明:配置pid文件路径,当redis以守护模式启动时,如果没有配置pidfile,pidfile默认值是/var/run/redis.pid 。
loglevel
默认配置项:loglevel notice
说明:日志记录等级,有4个可选值,debug(开发),verbose(默认值),notice(生产),warning(警告)
logfile
默认配置项:logfile " "
说明:日志文件的位置,当指定为空字符串时,为标准输出,如果redis已守护进程模式运行,那么日志将会输出到 /dev/null,若指定了路径,日志将会输出到指定文件 。
syslog-enabled
默认配置项:syslog-enabled no
说明:是否把日志记录到系统日志。
syslog-ident
默认配置项:syslog-ident redis
说明:指定syslog里的日志标识
syslog-facility
默认配置项:syslog-facility local0
说明:指定syslog设备(facility),必须是user或则local0到local7。
databases
默认配置项:databases 16
说明:可用数据库数量
always-show-logo
默认配置项:always-show-logo yes
说明:Redis显示一个ASCII艺术徽标只有当开始登录到标准输出,以及标准输出是否是TTY。
###SNAPSHOTTING(快照)### (需记)
save
默认配置项:
save 900 1
save 300 10
save 60 10000
说明:多少秒保存数据到磁盘,格式是:save <seconds> <changes>。意思是至少有changes条key数据被改变时,seconds秒保存到磁盘。
stop-writes-on-bgsave-error
默认配置项:stop-writes-on-bgsave-error yes
说明:默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。
rdbcompression
默认配置项:rdbcompression yes
说明:当dump .rdb数据库的时候是否压缩数据对象,如果你想节约一些cpu资源的话,可以把它设置为no,这样的话数据集就可能会比较大。
rdbchecksum
默认配置项:rdbchecksum yes
说明:存储和加载rdb文件时校验,会占用一部分资源。
dbfilename
默认配置项:dbfilename dump.rdb
说明:本地数据库文件名,默认值为dump.rdb
rdb-del-sync-files
默认配置项:rdb-del-sync-files no
说明:在没有持久性的情况下删除复制中使用的RDB文件启用。默认情况下,此选项是禁用的。
dir
默认配置项:dir ./
说明:本地数据库存放路径,默认值为 ./
###REPLICATION(主从)###(必会)
replicaof
默认配置项:replicaof <masterip> <masterport>
说明:格式:replicaof <masterip> <masterport>,当本机为从服务时,设置主服务的IP及端口。例如:replicaof 192.168.233.233 6379。
masterauth
默认配置项:masterauth <master-password>
说明:当本机为从服务时,设置主服务的连接密码。
masteruser
默认配置项:masteruser <username>
说明:当本机为从服务时,设置主服务的用户名。
slave-serve-stale-data
默认配置项:replica-serve-stale-data yes
说明:当slave失去与master的连接,或正在拷贝中,如果为yes,slave会响应客户端的请求,数据可能不同步甚至没有数据,如果为no,slave会返回错误"SYNC with master in progress"
replica-read-only
默认配置项:replica-read-only yes
说明:如果为yes,slave实例只读,如果为no,slave实例可读可写。
repl-diskless-sync
默认配置项:repl-diskless-sync no
说明:新的从站和重连后不能继续备份的从站,需要做所谓的“完全备份”,即将一个RDB文件从主站传送到从站。这个传送有以下两种方式:
硬盘备份:redis主站创建一个新的进程,用于把RDB文件写到硬盘上。过一会儿,其父进程递增地将文件传送给从站。
无硬盘备份:redis主站创建一个新的进程,子进程直接把RDB文件写到从站的套接字,不需要用到硬盘。
在硬盘备份的情况下,主站的子进程生成RDB文件。一旦生成,多个从站可以立即排成队列使用主站的RDB文件。在无硬盘备份的情况下,一次RDB传送开始,新的从站到达后,需要等待现在的传送结束,才能开启新的传送。
如果使用无硬盘备份,主站会在开始传送之间等待一段时间(可配置,以秒为单位),希望等待多个子站到达后并行传送。
在硬盘低速而网络高速(高带宽)情况下,无硬盘备份更好。
repl-diskless-sync-delay
默认配置项:repl-diskless-sync-delay 5
说明:无盘复制延时开始秒数,默认是5秒,意思是当PSYNC触发的时候,master延时多少秒开始向master传送数据流,以便等待更多的slave连接可以同时传送数据流,因为一旦PSYNC开始后,如果有新的slave连接master,只能等待下次PSYNC。可以配置为0取消等待,立即开始。
repl-diskless-load
默认配置项:repl-diskless-load disabled
说明:是否使用无磁盘加载,有三项:
disabled:不要使用无磁盘加载,先将rdb文件存储到磁盘
on-empty-db:只有在完全安全的情况下才使用无磁盘加载
swapdb:解析时在RAM中保留当前db内容的副本,直接从套接字获取数据。
repl-ping-replica-period
默认配置项:repl-ping-replica-period 10
说明:指定slave定期ping master的周期,默认10秒钟。
repl-timeout
默认配置项:repl-timeout 60
说明:从服务ping主服务的超时时间,若超过repl-timeout设置的时间,slave就会认为master已经宕了。
repl-disable-tcp-nodelay
默认配置项:repl-disable-tcp-nodelay no
说明:在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY . 假如设置成yes,则redis会合并小的TCP包从而节省带宽,但会增加同步延迟(40ms),造成master与slave数据不一致 假如设置成no,则redis master会立即发送同步数据,没有延迟。
repl-backlog-size
默认配置项:repl-backlog-size 1mb
说明:设置主从复制backlog容量大小。这个 backlog 是一个用来在 slaves 被断开连接时存放 slave 数据的 buffer,所以当一个 slave 想要重新连接,通常不希望全部重新同步,只是部分同步就够了,仅仅传递 slave 在断开连接时丢失的这部分数据。这个值越大,salve 可以断开连接的时间就越长。
repl-backlog-ttl
默认配置项:repl-backlog-ttl 3600
说明:配置当master和slave失去联系多少秒之后,清空backlog释放空间。当配置成0时,表示永远不清空。
replica-priority
默认配置项:replica-priority 100
说明:当 master 不能正常工作的时候,Redis Sentinel 会从 slaves 中选出一个新的 master,这个值越小,就越会被优先选中,但是如果是 0 , 那是意味着这个 slave 不可能被选中。 默认优先级为 100。
min-replicas-to-write&min-replicas-max-lag
默认配置项:
min-replicas-to-write 3
min-replicas-max-lag 10
说明:假如主redis发现有超过M个从redis的连接延时大于N秒,那么主redis就停止接受外来的写请求。这是因为从redis一般会每秒钟都向主redis发出PING,而主redis会记录每一个从redis最近一次发来PING的时间点,所以主redis能够了解每一个从redis的运行情况。上面这个例子表示,假如有大于等于3个从redis的连接延迟大于10秒,那么主redis就不再接受外部的写请求。上述两个配置中有一个被置为0,则这个特性将被关闭。默认情况下min-replicas-to-write为0,而min-replicas-max-lag为10。
replica-announce-ip&replica-announce-port
默认配置项:
replica-announce-ip 5.5.5.5
replica-announce-port 1234
说明:常用于端口转发或NAT场景下,对Master暴露真实IP和端口信息。
###SECURITY(安全)###(必会)
acllog-max-len
默认配置项:acllog-max-len 128
说明:ACL日志存储在内存中并消耗内存,设置此项可以设置最大值来回收内存。
requirepass
默认配置项:requirepass foobared
说明:设置Redis连接密码
rename-command
默认配置项:rename-command CONFIG " "
说明:将命令重命名。为了安全考虑,可以将某些重要的、危险的命令重命名。当你把某个命令重命名成空字符串的时候就等于取消了这个命令。
###CLIENTS(客户端)###(需记)
maxclients
默认配置项:maxclients 10000
说明:客户端最大连接数
###LAZY FREEING(惰性删除)###(按需)
lazyfree-lazy-eviction
默认配置项:lazyfree-lazy-eviction no
说明:针对redis内存使用达到maxmeory,并设置有淘汰策略时,在被动淘汰键时,是否采用lazy free机制。因为此场景开启lazy free, 可能使用淘汰键的内存释放不及时,导致redis内存超用,超过maxmemory的限制。
###APPEND ONLY MODE(追加)###(必会)
appendonly
默认配置项:appendonly no
说明:是否启用aof持久化方式 。即是否在每次更新操作后进行日志记录,默认配置是no,即在采用异步方式把数据写入到磁盘,如果不开启,可能会在断电时导致部分数据丢失。
appendfilename
默认配置项:appendfilename “appendonly.aof”
说明:更新日志文件名,默认为appendonly.aof。
appendfsync
默认配置项:appendfsync everysec
说明:aof文件刷新的频率。有三种:
1.no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
2.always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
3.everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
no-appendfsync-on-rewrite
默认配置项:no-appendfsync-on-rewrite no
说明:指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写AOF文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。
auto-aof-rewrite-percentage
默认配置项:auto-aof-rewrite-percentage 100
说明:aof文件增长比例,指当前aof文件比上次重写的增长比例大小。aof重写即在aof文件在一定大小之后,重新将整个内存写到aof文件当中,以反映最新的状态(相当于bgsave)。这样就避免了,aof文件过大而实际内存数据小的问题(频繁修改数据问题)。
auto-aof-rewrite-min-size
默认配置项:auto-aof-rewrite-min-size 64mb
说明:aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小).此变量仅初始化启动redis有效.如果是redis恢复时,则lastSize等于初始aof文件大小。
aof-load-truncated
默认配置项:aof-load-truncated yes
说明:指redis在恢复时,会忽略最后一条可能存在问题的指令。默认值yes。即在aof写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会log并继续,而no会直接恢复失败。
aof-use-rdb-preamble
默认配置项:aof-use-rdb-preamble yes
说明:在开启了这个功能之后,AOF重写产生的文件将同时包含RDB格式的内容和AOF格式的内容,其中RDB格式的内容用于记录已有的数据,而AOF格式的内存则用于记录最近发生了变化的数据,这样Redis就可以同时兼有RDB持久化和AOF持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)。
###LUA SCRIPTING(LUA 脚本)###(了解)
lua-time-limit
默认配置项:lua-time-limit 5000
说明:一个Lua脚本最长的执行时间,单位为毫秒,如果为0或负数表示无限执行时间,默认为5000
###REDIS CLUSTER(集群)###(必会)
cluster-enabled
默认配置项:cluster-enabled yes
说明:如果是yes,表示启用集群,否则以单例模式启动
cluster-config-file
默认配置项:
cluster-config-file nodes-6379.conf
说明:这不是一个用户可编辑的配置文件,这个文件是Redis集群节点自动持久化每次配置的改变,为了在启动的时候重新读取它。
cluster-node-timeout
默认配置项:cluster-node-timeout 15000
说明:超时时间,集群节点不可用的最大时间。如果一个master节点不可到达超过了指定时间,则认为它失败了。注意,每一个在指定时间内不能到达大多数master节点的节点将停止接受查询请求。
cluster-replica-validity-factor
默认配置项:cluster-replica-validity-factor 10
说明:如果设置为0,则一个slave将总是尝试故障转移一个master。如果设置为一个正数,那么最大失去连接的时间是node timeout乘以这个factor。
cluster-require-full-coverage
默认配置项:cluster-require-full-coverage yes
说明:如果设置为yes,这也是默认值,如果key space没有达到百分之多少时停止接受写请求。如果设置为no,将仍然接受查询请求,即使它只是请求部分key。
cluster-replica-no-failover
默认配置项:cluster-replica-no-failover no
说明:此选项设置为yes时,可防止从设备尝试对其进行故障转移master在主故障期间。 然而,仍然可以强制执行手动故障转移。
cluster-allow-reads-when-down
默认配置项:cluster-allow-reads-when-down no
说明:是否允许集群在宕机时读取
cluster-migration-barrier
默认配置项:cluster-migration-barrier 1
说明:一个master和slave保持连接的最小数量(即:最少与多少个slave保持连接),也就是说至少与其它多少slave保持连接的slave才有资格成为master。
cluster-enabled
默认配置项:cluster-enabled yes
说明:如果是yes,表示启用集群,否则以单例模式启动
###SLOW LOG(慢查询日志)### (需记)
slowlog-log-slower-than
默认配置项:slowlog-log-slower-than 10000
说明:决定要对执行时间大于多少微秒(microsecond,1秒 = 1,000,000 微秒)的查询进行记录。
slowlog-max-len
默认配置项:slowlog-max-len 128
说明:它决定 slow log 最多能保存多少条日志, slow log 本身是一个 FIFO 队列,当队列大小超过 slowlog-max-len 时,最旧的一条日志将被删除,而最新的一条日志加入到 slow log ,以此类推。
###LATENCY MONITOR(延时监控)###(了解)
latency-monitor-threshold
默认配置项:latency-monitor-threshold 0
说明:能够采样不同的执行路径来知道redis阻塞在哪里。这使得调试各种延时问题变得简单,设置一个毫秒单位的延时阈值来开启延时监控。
###ADVANCED CONFIG(高级配置)###(按需)
hash-max-ziplist-entries
默认配置项:hash-max-ziplist-entries 512
说明:这个参数指的是ziplist中允许存储的最大条目个数,默认为512,建议为128。
hash-max-ziplist-value
默认配置项:hash-max-ziplist-value 64
说明:ziplist中允许条目value值最大字节数,默认为64,建议为1024。
list-max-ziplist-size
默认配置项:list-max-ziplist-size -2
说明:ziplist列表最大值,默认存在五项:
-5:最大大小:64 Kb <——不建议用于正常工作负载
-4:最大大小:32 Kb <——不推荐
-3:最大大小:16 Kb <——可能不推荐
-2:最大大小:8 Kb<——很好
-1:最大大小:4 Kb <——好
list-compress-depth
默认配置项:list-compress-depth 0
说明: 一个quicklist两端不被压缩的节点个数。0: 表示都不压缩。这是Redis的默认值,1: 表示quicklist两端各有1个节点不压缩,中间的节点压缩。3: 表示quicklist两端各有3个节点不压缩,中间的节点压缩。
set-max-intset-entries
默认配置项:set-max-intset-entries 512
说明:当集合中的元素全是整数,且长度不超过set-max-intset-entries(默认为512个)时,redis会选用intset作为内部编码,大于512用set。
zset-max-ziplist-entries&zset-max-ziplist-value
默认配置项:
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
说明:当有序集合的元素小于zset-max-ziplist-entries配置(默认是128个),同时每个元素的值都小于zset-max-ziplist-value(默认是64字节)时,Redis会用ziplist来作为有序集合的内部编码实现,ziplist可以有效的减少内存的使用。
hll-sparse-max-bytes
默认配置项:hll-sparse-max-bytes 3000
说明:value大小 小于等于hll-sparse-max-bytes使用稀疏数据结构(sparse),大于hll-sparse-max-bytes使用稠密的数据结构(dense)。
stream-node-max-bytes&stream-node-max-entries
默认配置项:
stream-node-max-bytes 4096
stream-node-max-entries 100
说明:Streams单个节点的字节数,以及切换到新节点之前可能包含的最大项目数。
activerehashing
默认配置项:activerehashing yes
说明:主动重新散列每100毫秒CPU时间使用1毫秒,以帮助重新散列主Redis散列表(将顶级键映射到值)。
client-output-buffer-limit normal
默认配置项:
client-output-buffer-limit normal 0 0 0
说明:对客户端输出缓冲进行限制可以强迫那些不从服务器读取数据的客户端断开连接,用来强制关闭传输缓慢的客户端。
client-output-buffer-limit replica
默认配置项:
client-output-buffer-limit replica 256mb 64mb 60
说明:对于slave client和MONITER client,如果client-output-buffer一旦超过256mb,又或者超过64mb持续60秒,那么服务器就会立即断开客户端连接
client-output-buffer-limit pubsub
默认配置项:
client-output-buffer-limit pubsub 32mb 8mb 60
说明:对于pubsub client,如果client-output-buffer一旦超过32mb,又或者超过8mb持续60秒,那么服务器就会立即断开客户端连接。
client-query-buffer-limit
默认配置项:client-query-buffer-limit 1gb
说明:客户端查询缓冲区累积新命令。 默认情况下,它被限制为固定数量,以避免协议失步(例如由于客户端中的错误)将导致查询缓冲区中的未绑定内存使用。 但是,如果您有非常特殊的需求,可以在此配置它,例如我们巨大执行请求。
proto-max-bulk-len
默认配置项:proto-max-bulk-len 512mb
说明:在Redis协议中,批量请求(即表示单个字符串的元素)通常限制为512 MB。 但是,您可以在此更改此限制。
hz
默认配置项:hz 10
说明:默认情况下,hz设置为10.提高值时,在Redis处于空闲状态下,将使用更多CPU。范围介于1到500之间,大多数用户应使用默认值10,除非仅在需要非常低延迟的环境中将此值提高到100。
dynamic-hz
默认配置项:dynamic-hz yes
说明:启用动态HZ时,实际配置的HZ将用作基线,但是一旦连接了更多客户端,将根据实际需要使用配置的HZ值的倍数。
aof-rewrite-incremental-fsync
默认配置项:aof-rewrite-incremental-fsync yes
说明:当一个子进程重写AOF文件时,如果启用下面的选项,则文件每生成32M数据会被同步。
rdb-save-incremental-fsync
默认配置项:rdb-save-incremental-fsync yes
说明:当redis保存RDB文件时,如果启用了以下选项,则每生成32 MB数据将对文件进行fsync。 这对于以递增方式将文件提交到磁盘并避免大延迟峰值非常有用。
###ACTIVE DEFRAGMENTATION(活跃的碎片整理)###(了解)
jemalloc-bg-thread
默认配置项:jemalloc-bg-thread yes
说明:默认情况下,用于清除的Jemalloc后台线程是启用的。

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2021年3月3日18:53:06
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Redis哨兵模式部署 Redis

Redis哨兵模式部署

Redis哨兵模式部署 主机宕机 将宕机的master下线 找一个slave作为master 通知所有的slave连接新的master 启动新的master与slave 全量复制*N+部分复制*N 哨...
Redis持久化 Redis

Redis持久化

Redis持久化   什么是持久化 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化   为什么要进行持久化 防止数据的意外丢失,确保数据安全...
Redis 的基本操作 Redis

Redis 的基本操作

Redis 的基本操作 作为缓存使用 原yun始业务功能设计 秒杀 618活动 春节买票 运营平台监控到的突发高频访问数据 突发时政要闻,被强势关注 高频,复杂的统计数据 在线人数   ke...
Redis安装 Redis

Redis安装

Redis安装 Redis的应用 为热点数据加速查询(主要场景),如热点商品,热点新闻,热点资讯,推广类等高访问量信息等 任务队列,如秒杀,抢购,购票排队等 及时信息查询,如各位排行榜,各类网站访问统...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: