Redis(二):Redis的配置文件介绍

    Redis的配置文件为redis.conf,配置文件主要分为以下几个模块,分别是:

1、GENERAL

2、SNAPSHOTTING

3、REPLICATION

4、SECURITY

5、LIMITS

6、APPEND ONLY MODE

7、LUA SCRIPTING

8、REDIS CLUSTER

9、SLOW LOG

10、ADVANCED CONFIG


1、GENERAL

参数名 默认值 含义
daemonize no redis是否作为守护进程来运行,默认不运行为守护进程。
pidfile /var/run/redis.pid 如果redis作为守护进程来运行,会将进程的pid写入pidfile所指定的文件中
port 6379 redis所监听的端口号,默认为6379
tcp-backlog 511 此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。TCP连接中已完成连接的大小是取tcp-backlog和somaxconn两者的最小值, 所以如果要调大的话必需修改内核的somaxconn值。这个参数即为调用listen()函数时指定的backlog。
bind 0.0.0.0 配置允许连接redis服务器的IP,默认全网可以连接。
timeout 0 客户端空闲N秒后服务器关闭连接,0表示禁用该机制。
tcp-keepalive 0 用来定时向client发送tcp_ack包来探测client是否存活的。默认不探测,官方建议值为60秒。
loglevel notice

日志级别,可以设置为:

  debug:适用于开发和测试环境,记录非常多信息

  verbose:记录很多无用信息,但不像debug那样混乱。

  notice:记录生产环境中可能用到适当的信息。 

  warning :只记录非常关键和重要的信息
logfile "" 设置日志文件,如果为空日志则写到标准输出流
databases 16 设置默认的数据库个数,默认为16

2、SNAPSHOTTING

参数名 默认值 含义
save 900 1 服务器在900s内对数据库进行了了至少1次修改,BGSAVE命令就会被执行。
save 300 10 服务器在300s之内对数据库进行了至少10次修改,BGSAVE命令就会被执行。
save 60 10000 服务器在60s之内对数据库进行了至少10000次修改,BGSAVE命令就会被执行。
stop-writes-on-bgsave-error yes 在持久化过程成如果出现错误是否停止向redis写入数据。
rdbcompression yes  是否在持久化的时候使用LZF方式压缩字符串对象。
rdbchecksum yes 在持久化的时候,是否进行文件的校验。如果进行文件校验将会付出10%的性能代价。
dbfilename dump.rdb 持久化的文件名。
dir ./ 持久化的工作目录,AOF文件也会写在这里。

3、REPLICATION

参数名 默认值 含义

slaveof <masterip> <masterport>

未启用 配置从服务器的主服务器地址, 保证从服务器重启之后仍然保持主从关系.

masterauth <master-password>

未启用 从服务器复制主服务器时需要输入密码
slave-serve-stale-data yes

在主从复制期间或者从服务器和主服务器失去连接时,从服务器充当两种角色:

如果设置为yes,表示从服务器在这期间仍然会回复客户端的请求,此时可能带有过期的数据,或者如果这是第一次同步,数据集可能只是空的。

如果设置为no,表示从服务器对客户端除了INFO和SLAVEOF命令外,其它的所有类型的命令都回复一个错误“SYNC with master in progress”。

slave-read-only yes 从服务器是否设置为只读。一主多从可以用作读写分离的场景,主提供写,从提供读。

repl-ping-slave-period

10 从服务器发送ping给主服务器,如果在该参数指定的时间内没有收到pong,那么表示网络状态不好, 主服务器会断开连接.

repl-timeout

60 当redis检测到repl-timeout超时(默认值60s),将会关闭主从之间的连接,redis slave发起重新建立主从连接的请求。
repl-disable-tcp-nodelay no SYNC是否禁用TCP_NODELAY机制,即TCP的粘包机制.

repl-backlog-size 

1mb 复制积压缓冲区的大小.

repl-backlog-ttl

3600 复制积压缓冲区在主从服务器失去连接后多久后进行释放.
slave-priority 100 从服务器被哨兵选未主服务器的优先级,优先级越低,表示越有可能选未主服务器 . 如果设置未0,表示该从服务器不能充当master.

min-slaves-to-write

3 从服务器的数量小于3个,主服务器拒绝执行写命令.
min-slaves-max-lag 10 三个从服务器的延迟都大于等于10s时,主服务器将拒绝执行写命令.

4、SECURITY

参数名 默认值 含义

requirepass foobared

未启用 Redis命令需要输入的密码

rename-command CONFIG ""

未启用 重命名Redis的那些危险的命令,这样普通用户不能使用

5、LIMITS

参数名 默认值 含义

maxclients  10000

未启用 Redis最大的客户端数量

maxmemory <bytes>

未启用 Redis最大的内存大小,如果超过这个值,redis将会执行过期删除,如果不能执行过期删除,那么redis将会返回错误

maxmemory-policy noeviction

未启用

noeviction: 不删除策略, 达到最大内存限制时, 如果需要更多内存, 直接返回错误信息。(默认值)
allkeys-lru: 所有key通用; 优先删除最近最少使用(less recently used ,LRU) 的 key。
volatile-lru: 只限于设置了 expire 的部分; 优先删除最近最少使用(less recently used ,LRU) 的 key。
allkeys-random: 所有key通用; 随机删除一部分 key。
volatile-random: 只限于设置了 expire 的部分; 随机删除一部分 key。
volatile-ttl: 只限于设置了 expire 的部分; 优先删除剩余时间(time to live,TTL) 短的key。

maxmemory-samples 5

未启动 LRU淘汰策略的样例大小,redis中并不会准确的删除所有键中最近最少使用的键,而是随机抽取maxmeory-samples个键,删除这些键中最近最少使用的键。

6、APPEND ONLY MODE

参数名 默认值 含义
appendonly no 是否开启AOF持久化功能
appendfilename "appendonly.aof" AOF持久化文件名
appendfsync everysec

 AOF持久化的方式:

     no: 不调用fsync(),由OS决定什么时候flush数据到磁盘;

     everysec: fsync()每秒调用一次;

     always: 每次有数据写入就调用一次,最安全但是最慢。
no-appendfsync-on-rewrite no  bgrewriteaof往往会涉及大量磁盘操作,这样就会造成主进程在写aof文件的时候出现阻塞的情形,如果该参数设置位no,表示fsync不执行不磁盘操作,只是写入了缓冲区。设置为yes,则执行磁盘操作,但是可能会阻塞很久。
auto-aof-rewrite-percentage 100 触发redis的rewrite的文件百分比,即当前文件大小大于上一次rewrite文件的的100%时,触发rewrite。
auto-aof-rewrite-min-size 64MB 最初的rewirte文件的大小。

7、LUA SCRIPTING

参数名 默认值 含义
lua-time-limit 5000  Lua脚本的最大执行时间(ms)

8、REDIS CLUSTER

参数名 默认值 含义

cluster-enabled yes

未启用 是否启动Redis集群功能

cluster-config-file nodes-6379.conf

未启用 redis集群的配置文件名

cluster-node-timeout 15000

未启用 集群节点的超时时间

cluster-migration-barrier 1

未启用

cluster-migration-barrier属性可以保证redis集群中不会出现裸奔的主节点(这个主节点没有对应的从节点),当某个主节点的

从节点挂掉裸奔后,会从其他富余的主节点分配一个从节点过来,确保每个主节点都有至少一个从节点,不至于因为主节点挂

掉而没有相应从节点替换为主节点导致集群崩溃不可用。

9、SLOW LOG

参数名 默认值 含义
slowlog-log-slower-than 10000 表示slowlog的划定界限,只有query执行时间大于slowlog-log-slower-than的才会定义成慢查询,才会被slowlog进行记录。
slowlog-max-len 128 表示慢查询最大的条数,当slowlog超过设定的最大值后,会将最早的slowlog删除,是个FIFO队列

10、ADVANCED CONFIG

参数名 默认值 含义
hash-max-ziplist-entries 512 哈希对象保存的元素个数大于512时进行编码转换,转为哈希表,最开始为压缩列表
hash-max-ziplist-value 64 哈希对象保存的字符串长度大于64时进行编码转换,转为哈希表,最开始为压缩列表
list-max-ziplist-entries 512 列表对象保存的元素个数大于512时进行编码转换,转为双端链表,最开始为压缩列表
list-max-ziplist-value 64 列表对象保存的字符串长度大于64时进行编码转换,转为双端链表,最开始为压缩列表
set-max-intset-entries 512 集合对象保存的元素个数大于512时进行编码转换,转为哈希表,最开始为整数集合
zset-max-ziplist-entries 128 有序集合对象保存的元素个数大于128时进行编码转换,转为跳跃表,最开始为压缩列表
zset-max-ziplist-value 64 有序集合对象保存的元素成员的长度大于64字节时进行编码转换,转为跳跃表,最开始为压缩列表
hll-sparse-max-bytes 3000  
activerehashing yes 是否激活rehash算法
client-output-buffer-limit nomal 0 0 0  
client-output-buffer-limit slave 256mb 64mb 60  
client-output-buffer-limit pubsub 32mb 8mb 60  
hz 10 后台函数serverCron函数每秒执行的次数,默认每秒执行10次
aof-rewrite-incremental-fsync yes 在进行AOF文件重写的时候,每产生32MB的文件,就调用fsync函数同步到文件中

猜你喜欢

转载自blog.csdn.net/MOU_IT/article/details/112151758