Redis – 配置文件

redis.conf

单位

S$IP5JZY9.png

导入

EZA5``RF}E0O.png

model

通过这里的 loadmodule 配置将引入自定义模块来新增一些功能。
B$[T]APE_PJ_QC_X3WDT@8Y.png

网络

  • bind : 绑定ip地址,只有绑定的ip可以访问 如果注释掉就是所有ip都可访问
  • port: 指定redis运行的端口,默认是6379。我们使用集群的时候就需要修改端口号
  • protect-model 保护模式 ,Redis3.2版本提出。如果Redis在启动时,未开启bind和密码设置功能,只能通过回环地址本地访问,如果尝试远程访问redis,会报DENIED Redis is running protected mode because protected mode is enabled
  • timeout:设置客户端连接时的超时时间
  • tcp-keepalive :单位是秒,周期性检查客户端是否健康,避免阻塞

通用GENERAL

  • daemonize 默认no,是否以守护进程方式运行

  • pidfile: 配置PID文件路径,如果以守护线程运行,则需要一个pid文件

  • loglevel :定义日志级别。

  • logfile :配置log文件地址,默认notice

      debug(记录大量日志信息,适用于开发、测试阶段)
      verbose(较多日志信息,但不像debug那么混乱)
      notice(适量日志信息,使用于生产环境)
      warning(仅有部分重要、关键信息才会被记录)
    复制代码
  • databases:设置数据库的数目。 默认16个,以db0开始

  • always-show-logo 是否显示logo

  • set-proc-title 修改进程标题以显示一些运行时信息

  • proc-title-template 当更改进程标题时,Redis使用以下模板来构造修改后的标题。

      {title}父进程执行的进程的名称,或子进程的类型。
      {listen addr}绑定地址或'*',后跟TCP或TLS端口侦听,或如果只有Unix套接字可用。
      {服务器模式}特殊模式,即“[sentinel]”或“[cluster]”。
      #{port}TCP端口侦听,或0。
      #{tls port}tls port侦听,或0。
      #{unixsocket}正在侦听的Unix域套接字,或“”。
      #{config file}使用的配置文件的名称。
      进程标题模板{title}{listen addr}{server mode}
    复制代码

SNAPSHOTTING 快照

  • save 配置触发 Redis的持久化条件,规定什么时候保存到硬盘(rdb,aof)
# save 3600 1 3600秒(一小时)后,如果至少有一把钥匙发生了变化,就进行持久化操作
# save 300 100 300秒(5分钟)后,如果至少更改了100个键
# save 60 10000  60秒后,如果至少10000个键发生更改
复制代码

为什么持久化? redis是内存数据库,断电即失

  • stop-writes-on-bgsave-error 持久化失败后是否停止写入,为yes则后续写操作均会失败
  • rdbcompression 是否用LZF算法进行压缩快照(把整个内存数据映射到硬盘中)
  • rdbchecksum 在存储快照后,是否使用CRC64算法来进行数据校验,但会增加大约10%的性能消耗

-dir 默认./ rdb工作目录,数据将保存在这个目录下

REPLICATION 复制

  • slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:

        1) 如果为 yes ,slave 仍然会应答客户端请求.
        但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候 
        2) 如果为 no ,在你执行除了 info he salveof 之外的其他命令时
        slave 都将返回一个 "SYNC with master in progress" 的错误
    复制代码
  • slave-read-only:配置Redis的Slave实例是否接受写操作,即Slave是否为只读Redis。默认值为yes。

  • repl-diskless-sync:主从数据复制是否使用无硬盘复制功能。默认值为no。

  • repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件,这个等待时间是可配置的。

     这一点很重要,因为一旦传送开始,就不可能再为一个新到达的从站服务。
     从站则要排队等待下一次RDB传送。因此服务器等待一段  时间以期更多的从站到达。
     延迟时间以秒为单位,默认为5秒。
     要关掉这一功能,只需将它设置为0秒,传送会立即启动。
    复制代码
  • repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。

     Linux内核默认配置情况下最多40毫秒的延时。
     如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。
     默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。
     默认值为no。
    复制代码

SECURITY 安全

  • requirepass redis密码
127.0.0.1:6379> config get requirepass # 默认无密码
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
line@line-PC:/usr/local/bin$ redis-cli # 更改后需重登才生效
127.0.0.1:6379> set k1 v2
(error) NOAUTH Authentication required. #未登录无权限
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> set k1 v2
OK
127.0.0.1:6379> 
复制代码

CLIENTS 连接限制

  • maxclients :设置客户端最大并发连接数,默认无限制 le: maxclients 10000

MEMORY MANAGEMENT 内存

  • maxmemory 设置Redis的最大内存

  • maxmemory-policy :当内存使用达到maxmemory设置的最大值时,redis使用的内存清除策略。

     1、volatile-lru:只对设置了过期时间的key进行LRU(默认值) 
      从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
      2、allkeys-lru : 删除lru算法的key   
    
      3、volatile-random:随机删除即将过期key 
      从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
    
      4、allkeys-random:随机删除   
    
      5、volatile-ttl : 删除即将过期的  
      从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
    
      6、noeviction : 永不过期,返回错误
    复制代码

APPEND ONLY MODE aof配置

  • appendonly no 默认不开启,即默认使用rdb。AOF和RDB可以同时启用而不会出现问题。如果启动时启用了AOF,Redis将加载AOF

  • appendfilename “appendonly.aof” 持久化文件的名称

  • appendfsync everysec 什么 时候进行同步 If unsure, use “everysec”.

    # appendfsync always # 每次修改执行
    appendfsync everysec # 每秒一次,可能丢失这一秒的数据
    # appendfsync no     # 不执行,操作系统自己同步速度最快
    复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享