include | 可以将公共的配置放入到一个公共的配置文件中,然后通过子配置文件引入父配置 例如 include .\path\to\local.conf include c:\path\to\other.conf |
bind | 默认未配置接受任何地址的访问 ,如果配如果只允许本机应用链接,可以配置 bind 127.0.0.1 ,参数只能绑定1个地址,也可以配置多个IP, 生产环境下写自己应用服务器的IP 例如: bind 192.168.1.100 10.0.0.1 bind 127.0.0.1? |
port | 监听的端口号 默认 port ?6379 |
timeout | 请求超时时间 ,即客户端空闲N秒后关闭连接 。 默认 timeout = 0 ,0表示禁用 |
tcp-keepalive | 对客户端的新桃检测间隔时间 |
protected-mode | 保护模式,默认配置开启 |
loglevel | 定义日志级别 debug:会记录大量日志使用于研发测试 verbose:会记录较多的日志 notice: 适当的日志,比较适用生产环境 warning:少量,只记录重要,关键的日志 |
logfile???????? | 日志记录的路径,默认为空,即标准输出 |
syslog-enable | 是否启动事件将日志记录到系统日志 |
syslog-indent | 系统中的日志事件的事件源 ,可以设置为redis |
databases | 开启数据库的数量? 默认 databases 16 ,其中0为第一个数据库, 可以通过select N选择其他数据库? |
| |
save * * | 保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。? 例如: save 900 1???? save 300 10??? save 60 10000 分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。 |
rdbcompression? | 转储时使用LZF压缩字符串对象,默认为是?rdbcompression??yes |
dbfilename | 转储时数据库快照文件名(只是文件名,不包括目录) 默认 dbfilename dump.rdb |
dir | 数据快照的保存目录(这个是目录)?? ? 默认 dir ./ 注意:这里是指定目录而不是文件名 |
| |
slaveof? | 主从同步。通过 slaveof 配置来实现Redis实例的备份。这里是本地从远端复制数据 格式:slaveof <masterip> <masterport> |
masterauth? | 主从同步。?如果master设置了密码(通过"requirepass" 选项来配置),那么slave在开始同步之前必须进行身份验证,否则它的同步请求会被拒绝 |
?slave-serve-stale-data | ?当一个slave失去和master的连接,或者同步正在进行中,slave的行为有两种可能: 1) 如果 slave-serve-stale-data 设置为 "yes" (默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据。 2) 如果 slave-serve-stale-data 设置为 "no",slave会回复"正在从master同步(SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令 默认为?slave-serve-stale-data yes |
repl-ping-slave-period | 主从同步。 slave根据指定的时间间隔向服务器发送ping请求。时间间隔可以通过 repl_ping_slave_period 来设置。单位秒 默认值:repl-ping-slave-period 10 |
repl-timeout | 设置了大块数据I/O、向master请求数据和ping响应的过期时间,单位秒 默认值:repl-timeout 60 注意:确保这个值比 repl-ping-slave-period 大,否则master和slave之间的传输过期时间比预想的要短 |
| |
requirepass | Redis设置数据库密码 ,默认为未配置,因为Redis太快了建议复杂一些 |
rename-command CONFIG | 将CONFIG重命名,一般建议修改成一个特别复杂的 例如:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 也可以设置为空串来禁用这条命令 例如:rename-command CONFIG "" |
| |
maxclients | 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。 注意:当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息 |
maxmemory?<bytes> | 告诉日redis当使用了多少物理内存后就开始拒绝后续的写入请求 默认 未配置 |
maxmemory-policy | 指定策略来删除不需要的键,直到Redis占用的内存小于指定的内存 例如:?maxmemory-policy?volatile-lru 1-volatile-lru ?使用LRU(最少使用)算法删除1个键(只对设置了生存时间的键) 2-allkeys-lru ?使用LRU(最少使用)算法删除一个键 3-volatile-random 随机删除一个键 (只对设置了生存时间的键) 4-allkeys-radom 随机删除一个键 ?//不断删除直到占用内存小于限制值 , 随机取maxmemory-samples配置的N个键,然后删除最久未被使用的键 5-volatile-ttl 删除生存时间最近的一个键 6-noeviction 根本不过期不删除键,只返回错误 默认的配置为 noeviction |
maxmemory-samples? | LRU和最小TTL算法不是精确算法,而是近似算法,默认情况下,Redis将检查5个关键点,并选择一个最少使用的点,可以使用本参数修改样本个数 例如:maxmemory-samples 5 |
| |
appendonly | 是否开启累加模式,默认配置为不开启,appendonly no 默认情况下,Redis是异步的把数据导出到磁盘上,这种情况下,当Redis挂掉的时候,最新的数据就丢失,如果不希望丢掉任何一条数据的话就该用纯累加模式, 一旦开启这个模式,Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件。每次启动时Redis都会把这个文件的数据读入内存里,这会提高数据抗风险能力,但影响效率,默认不开启 |
appendfilename? | 纯累加文件名字,默认配置为?appendfilename "appendonly.aof" |
appendfsync | fsync() 方法调用告诉操作系统马上把数据写到磁盘上,一些操作系统会马上做一些操作系统只会尽快尝试去做 Redis支持三种不同的模式 no:不要立刻刷,只有在操作系统需要刷的时候再刷。比较快 always:每次写操作都立刻写入到aof文件。慢点,最安全 everysec:每秒写一次,这是一种妥协的方式 默认值为“everysec”,因为这通常见的在速度和安全上的折中方法 |
no-appendfsync-on-rewrite no | ?如果AOF的同步策略设置成 "always" 或者 "everysec",那么后台的存储进程(后台存储或写入AOF日志)会产生很多磁盘I/O开销。某些Linux的配置下会使Redis因为 fsync() 而阻塞很久。为了缓解这个问题,可以用下面这个选项。它可以在 BGSAVE 或 BGREWRITEAOF 处理时阻止 fsync()。 ?如果你有延迟的问题那就把这个设为 "yes",否则就保持 "no",这是保存持久数据的最安全的方式 默认: no-appendfsync-on-rewrite no |
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb | 自动重写AOF文件 如果AOF日志文件大到指定百分比,Redis能够通过 BGREWRITEAOF 自动重写AOF日志文件。 工作原理:Redis记住上次重写时AOF日志的大小(或者重启后没有写操作的话,那就直接用此时的AOF文件), ?基准尺寸和当前尺寸做比较。如果当前尺寸超过指定比例,就会触发重写操作。
你还需要指定被重写日志的最小尺寸,这样避免了达到约定百分比但尺寸仍然很小的情况还要重写。 如果你指定百分比为0会禁用AOF自动重写特性。 |
aof-load-truncated | 在Redis过程中,可能会发现AOF文件在末尾被截断,启动过程,当AOF数据加载回内存时。这可能发生在Redis运行的系统中崩溃 如果aof load truncated设置为yes,则会加载并删除一个被截断的aof文件 默认配置:aof-load-truncated yes |
| |
lua-time-limit | Lua脚本的最大执行时间(毫秒)? 默认配置:lua-time-limit 5000? ? 为了防止某个脚本执行时间过长导致Redis 无法提供服务, Redis 提供了lua-time-limit 参数限制脚本的最长运行时间,将其设置为0或负值,以便在没有警告的情况下无限执行 |
| |
cluster-enabled | 是否启用集群配置,设置为yes为启动 例如:cluster-enabled yes |
cluster-config-file | 每个群集节点都有一个群集配置文件 例如:?cluster-config-file nodes-6379.conf |
cluster-node-timeout | 集群节点超时时间,单位毫秒 例如:cluster-node-timeout 15000 |
cluster-slave-validity-factor | 节点有效性系数 例如:cluster-slave-validity-factor 10 在进行故障转移的时候,全部slave都会请求申请为master,但是有些slave可能与master断开连接一段时间了,导致数据过于陈旧,这样的slave不应该被提升为master。该参数就是用来判断slave节点与master断线的时间是否过长。 判断公式:(node-timeout * slave-validity-factor) + repl-ping-slave-period? 例如: 节点超时时间:cluster-node-timeout 配置为30秒 当前系数配置:cluster-slave-validity-factor配置为10 从服务器ping间隔配置:repl-ping-slave-period配置为10秒 当无法与主设备对话,过30*10+10=310秒后从设备将不会尝试故障切换 |
cluster-migration-barrier? | master的slave数量大于该值,slave才能迁移到其他孤立master上,如这个参数若被设为2,那么只有当一 个主节点拥有2 个可工作的从节点时,它的一个从节点会尝试迁移 |
| |
slowlog-log-slower-than 10000 | 执行时间参数 单位是微秒 slog log是用来记录redis运行中执行比较慢的命令耗时。当命令的执行超过参数了指定时间,就记录在slow log中,slog log保存在内存中,所以没有IO操作 |
slowlog-max-len | 可以通过SLOWLOG RESET回收慢速日志使用的内存。 注意:这个长度没有限制。它会消耗内存。 默认配置:slowlog-max-len 128 |