Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf)。通过vim/etc/redis/redis.conf命令打开此文件。下面我们将详细介绍此配置文件。

1.开头说明

redis配置在项目中哪里 redis的配置文件_strstr区分大小写吗

        这里没什么好说的,需要注意的是后面需要使用内存大小时,可以指定单位,通常是以 k,gb,m的形式出现,并且单位不区分大小写

2.INCLUDES

redis配置在项目中哪里 redis的配置文件_strstr区分大小写吗_02

        我们知道Redis只有一个配置文件,如果多个人进行开发维护,那么就需要多个这样的配置文件,这时候多个配置文件就可以在此通过 include /path/to/local.conf 配置进来,而原本的 redis.conf 配置文件就作为一个总闸。  

    如果用过struts2 开发的同学,在项目组中多人开发的情况下,通常会有多个struts2.xml 文件,这时候也会通过类时的配置引入进来。

  另外需要注意的时,如果将此配置写在redis.conf 文件的开头,那么后面的配置会覆盖引入文件的配置,如果想以引入文件的配置为主,那么需要将 include 配置写在 redis.conf 文件的末尾。

3.MODULES

redis配置在项目中哪里 redis的配置文件_redis配置文件_03

        redis3.0的爆炸功能是新增了集群,而redis4.0就是在3.0的基础上新增了许多功能,其中这里的 自定义模块配置就是其中之一。通过这里的 loadmodule 配置将引入自定义模块来新增一些功能。

4.NETWORK

redis配置在项目中哪里 redis的配置文件_redis配置文件详解_04

    这里的配置较长,我只截取了一部分,下同。

  • bind:绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。如果bind选项为空的话,那会接受所有来自于可用网络接口的连接。
  • port:指定redis运行的端口,默认是6379。由于Redis是单线程模型,因此单机开多个Redis进程的时候会修改端口。
  • timeout:设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接。默认值为0,表示不关闭。
  • tcp-keepalive :单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300s,如果设置为0,则不会周期性的检测。

5.GENERAL

redis配置在项目中哪里 redis的配置文件_strstr区分大小写吗_05

具体配置详解:

  • daemonize:设置为yes表示指定Redis以守护进程的方式启动(后台启动)。默认值为 no
  • pidfile:配置PID文件路径,当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/redis/run/redis_6379.pid 文件里面
  • loglevel :定义日志级别。默认值为notice,有如下4种取值:
  • debug(记录大量日志信息,适用于开发、测试阶段)
  • verbose(较多日志信息)
  • notice(适量日志信息,使用于生产环境)
  • warning(仅有部分重要、关键信息才会被记录)
  • logfile :配置log文件地址,默认打印在命令行终端的窗口上
  • databases:设置数据库的数目。默认的数据库是DB 0 ,可以在每个连接上使用select   命令选择一个不同的数据库,dbid是一个介于0到databases - 1 之间的数值。默认值是 16,也就是说默认Redis有16个数据库。

6.SNAPSHOTTING

        这里的配置主要用来做持久化操作。  

redis配置在项目中哪里 redis的配置文件_redis配置文件_06

     

  • save:这里是用来配置触发 Redis的持久化条件,也就是什么时候将内存中的数据保存到硬盘。
    默认如下配置:
  • save 900 1:表示900 秒内如果至少有 1 个 key 的值变化则保存;
  • save 300 10:表示300 秒内如果至少有 10 个 key 的值变化则保存;
  • save 60 10000:表示60 秒内如果至少有 10000个key的值变化则保存。

7.REPLICATION

redis配置在项目中哪里 redis的配置文件_redis配置_07

  • slave-serve-stale-data:默认值为yes。当一个 slave 与 master 失去联系,或者复制正在进行的时候,slave 可能会有两种表现:
  • yes :slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候 ;
  • 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秒,传送会立即启动。默认值为5。
  • repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。Linux内核默认配置情况下最多40毫秒的延时。如果选择no,从站的数据延时不会那么多,但备份需要的带宽相对较多。默认情况下我们将潜在因素优化,但在高负载情况下或者在主从站都跳的情况下,把它切换为yes是个好主意。默认值为no。
    上一篇:Redis配置文件还看不懂吗?laughing哥带你撸redis配置文件(二)