天天看点

Redis学习笔记:配置文件1、配置文件redis.cofig

这是个人的学习笔记,主要学习资料如下:

  • B站狂神说,Redis教程

目录

  • 1、配置文件redis.cofig
    • 1.1、总结
    • 1.2、配置项详解
      • 通用配置
      • 快照设置(RDB存储)
        • RDB和AOF是什么
        • 配置信息
      • 快照设置(AOF存储)
      • 主从复制设置
      • 安全设置
      • 客户端设置

1、配置文件redis.cofig

redis的配置文件就在安装目录下,

redis.config

文件,我使用brew安装,默认安装目录是

/usr/local/etc

1.1、总结

1.2、配置项详解

  • include多个配置文件:35行的位置,可以include其他路径的配置文件。
    Redis学习笔记:配置文件1、配置文件redis.cofig
  • 绑定的ip:69行。默认指定本机,意思是只接受来自本机的redis请求。如果我们想要接受外部的请求,那要用修改这项内容,其中会用到一些通配符。

    如果这一项没有配置,那意味着本机的redis服务会接收所有的请求,相当于直接暴露给外部,这非常危险。

  • 绑定端口号:92行,默认监听6379端口号。
  • 安全模式:88行。默认是开启的,如果关闭了,那意味着redis服务端可以接受没有验证过的请求。
protected-mode yes
           

通用配置

  • 设置redis服务为守护进程:136行。默认不是守护进程,如果设置为守护进程的话,会产生redis.pid文件。建议开启,这样redis服务就不会突然自己就结束。
daemonize no
           
  • 指定redis.pid文件地址:158行。当redis被设置成守护进程时,系统会根据这个地址产生redis.pid文件。默认值是

    /var/run/redis_6379.pid

    这个文件即使生成失败,也不会影响redis服务的运行。

  • 指定redis的日志级别:166行。可以指定redis的日志级别,可选的级别可看备注。默认的级别是

    notice

# Specify the server verbosity level.
# This can be one of:
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably)
# warning (only very important / critical messages are logged)
loglevel notice
           
  • 设置日志文件地址:171行。可以指定redis产生的日志的位置。默认值是空,这时redis会将日志信息输出到标准输出流之中。
  • 数据库的个数:186行。默认16个
databases 16
           
  • 是否显示logo:194行。这个logo指的是使用指令

    redis-sever

    启动redis服务时,打印出来的那个巨大盒子logo。
    Redis学习笔记:配置文件1、配置文件redis.cofig

快照设置(RDB存储)

RDB和AOF是什么

RDB是

Redis Data Base

的缩写,AOF是

Append Only File

的缩写。

配置信息

  • 设置保存快照的时间规则:218行。保存规则是,累计有y条数据被改变,那在x秒后会持久化一次。语法是

    sava x y

    。可以同时设置多条规则。默认有三条规则,如代码所示。
save 900 1
save 300 10
save 60 10000
           
  • 持久化发生错误时,是否继续工作:235行。默认情况下,只要发生持久化错误,redis就会停止服务(但不是完全停止,之后是有机会自动在开启服务的)。这算是一个强提醒,提醒开发者持久化失败。

    如果持久化工作又重新开始,那redis又会开启服务(原注释是再次允许写入,Redis will automatically allow writes again,我理解成再次开启服务,待验证)。

  • 是否压缩持久化文件:241行。默认开启压缩,这会消耗一定的CPU资源。
  • 是否持久化文件校验:250行。校验持久化文件,让文件格式更好(反正就是表现更好)。但是会对性能有较大的消耗,注释文档说大概有10%的损耗。默认是开启校验的。
  • 持久化文件的文件名:253行。默认是dump.rdb文件。
dbfilename dump.rdb
           
  • 持久化文件保存路径:263行。注意是目录,不是文件。默认值是

    /usr/local/var/db/redis/

dir /usr/local/var/db/redis/
           

快照设置(AOF存储)

  • 设置快照模式:699行。默认是RDB模式。
appendonly no
           
  • 设置存储文件名:703行。默认名是

    appendonly.aof

  • 设置同步时间:729行。操作系统也有自己的策略去同步数据,我们无法控制操作系统的策略。这个选项是强制要求操作系统同步数据的时间。
# appendfsync always 一有修改,就同步一次
appendfsync everysec # 每秒同步一次
# appendfsync no 不同步,让操作系统想什么时候同步就什么时候同步
           

主从复制设置

安全设置

  • 设置访问密码:507行。这条设置默认被注释掉,表示不需要密码就可访问redis服务。我们可以设置密码,语法是

    requirepass password

    (不知道为什么文档要写成foobared)
requirepass foobared
           

如果设置了密码,要先使用```auth password```先登录,之后才可以继续其它操作。

客户端设置

  • 设置最大连接数:539行。默认支持最大10000个客户端连接redis服务。
maxclients 10000
           
  • 设置redis可占用的最大内存:566行。单位是byte,有个默认大小,注释文档没写多少。
  • 内存不够时的处理策略:597行。有多个处理策略可选,详细可看注释,默认是noeviction,也就是什么都不管,直接抛出异常返回。
# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key among the ones with an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
maxmemory-policy noeviction
           

继续阅读