redis.conf 配置文件解析

时间:2021-09-28 20:34:36
1.在哪里:在我们的myredis文件夹下的myredis.conf文件夹下,注意,这是拷贝出来单独执行的,为了养成良好的编码习惯。

2.Units单位
  当你需要为某个配置项指定内存大小的时候,必须要带上单位, 通常的格式就是 1k 5gb 4m 等:
1k  => 1000 bytes
1kb => 1024 bytes
1m  => 1000000 bytes
1mb => 1024*1024 bytes
1g  => 1000000000 bytes
1gb => 1024*1024*1024 bytes
    单位是不区分大小写的,你写 1K 5GB 4M 也行

3.includes包含
    和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他。
    假如说你有一个可用于所有的 redis server 的标准配置模板, 但针对某些 server 又需要一些个性化的设置, 你可以使用 include 来包含一些其他的配置文件,这对你来说是非常有用的。 但是要注意,include 是不能被 config rewrite 命令改写的, 由于 redis 总是以最后的加工线作为一个配置指令值,所以你最好是把 include 放在这个文件的最前面, 以避免在运行时覆盖配置的改变,相反,你就把它放在后面。
include /path/to/local.conf
include /path/to/other.conf

4. 常用 配置:
(1) Daemonize:
    默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes,当redis作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面(37行)。
(2) Pidfile:
    当redis作为守护进程运行的时候,它会把 pid 默认写到 /var/run/redis.pid 文件里面, 但是你可以在这里自己制定它的文件位置 (41行)。
(3) Port :
    监听端口号,默认为 6379,如果你设为 0 ,redis 将不在 socket 上监听任何客户端连接(45行):
(4) Tcp-backlog :
    在高并发的环境下,你需要把这个值调高以避免客户端连接缓慢的问题,Linux 内核会一声不响的把这个值缩小成/proc/sys/net/core/somaxconn 对应的值,所以你要修改这两个值才能达到你的预期(54行)
(5) Timeout:
    客户机空闲多少秒就关闭了 ,0代表一直不关 (74行)。
(6) Bind
    默认情况下,redis 在 server 上所有有效的网络接口上监听客户端连接, 你如果只想让它在一个网络接口上监听,那你就绑定一个IP或者多个IP。  示例,多个IP用空格隔开: bind 192.168.1.100 10.0.0.1(64行)。
(7) Tcp-keepalive:
    是在TCP中一个可以检测死连接的机制。 单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置成60 (90行)
(8) Loglevel:redies的日志级别 ,默认有四个级别,分别是:debug,verbose,notice<默认>,warning (90行)。
    debug (适用于开发或测试阶段)
    verbose (many rarely useful info, but not a mess like the debug level)
    notice (适用于生产环境)
    warning (仅仅一些重要的消息被记录)
(9) Logfile:指定日志文件的位置(103行)
(10) Syslog-enabled:是否把日志输出到syslog中(107)
    要想把日志记录到系统日志,就把它改成 yes, 也可以可选择性的更新其他的syslog 参数以达到你的要求。
(11) Syslog-ident: 指定syslog里的日志标志 (110)
(12) Syslog-facility:
    设置 syslog 的 facility,必须是 USER 或者是 LOCAL0-LOCAL7 之间的值。(113)
(13) Databases:16个库(118)
    设置数据库的数目。 默认数据库是 DB 0,你可以在每个连接上使用 select <dbid> 命令选择一个不同的数据库, 但是 dbid 必须是一个介于 0 到 databasees - 1 之间的值
(14) 默认值为dump.rdb:指定本地数据库文件名,我们可以设置,例如:dbfilename dump6379.rdb(177行)

5.snapshotting 快照(Redis持久化之RDB )
    该持久化默认开启一次性redis全部的数据保存一份存储在硬盘中,如果数据非常多(10-20G)不适合频繁进行该持久化操作。
(1) Save:根据给定的时间间隔和写入次数将数据保存到磁盘
save 900 1          #900 秒内如果超过 1 个 key 被修改,则发起快照保存
save 300 10        #300秒超过10个key被修改,发起快照
save 60 10000    #60秒超过10000个key被修改,发起快
    注意:你可以注释掉所有的 save 行来停用保存功能。也可以直接一个空字符串来实现停用: save ""
(2) Stop-writes-on-bgsave-error:
    默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作, 这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作, 然而你要是安装了靠谱的监控,你可能不希望 redis 这样做,那你就改成 no 好了。
(3) rdbcompression:
    是否在 dump .rdb 数据库的时候使用 LZF 压缩字符串, 默认都设为 yes, 如果你希望保存子进程节省点 cpu ,你就设置它为 no ,关闭此功能, 不过这个数据集可能就会比较大。
(4) rdbchecksum:是否校验rdb文件
    在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能。
(5) dbfilename:名字一般不需要修改。
(6) dir:工作目录
    例如上面的 dbfilename 只指定了文件名, 但是它会写入到这个目录下。这个配置项一定是个目录,而不能是文件名。

6.Redis 主从复制
    详见:

7. Redis  安全: 访问密码的查看、设置和取消
    查看:config get requirepass
    设置:config set requirepass "123456"
    取消:auth 123456

8. Redis  限制:
(1) Maxclients:
    设置redis同时可以与多少个客户端进行连接,默认情况下为10000个客户端,当你 无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32。
(2) Maxmemory:
    设置redis可以使用的内存量。一旦到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory-policy来指定。如果redis无法根据移除规则来移除内存中的数据,或者设置了“不允许移除”, 那么redis则会针对那些需要申请内存的指令返回错误信息,比如SET、LPUSH等。
(3) Maxmemory-policy:最大内存策略,你有 5 个选择。
    ① volatile-lru:使用LRU算法移除key,只对设置了过期时间的键。
    ② allkeys-lru:使用LRU算法移除key。
    ③ volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键。
    ④ allkeys-random:移除随机的key。
    ⑤ volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key。
    ⑥ noeviction:不让任何 key 过期,只是给写入操作返回一个错误。
(4) Maxmemory-samples:
    设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小, redis默认会检查这么多个key并选择其中LRU的那个

9.Redis 追加(Redis持久化之AOF)
(1) appendonly:默认为no,yes就是打开aof持久化。
(2) appendfilename:
(3) Appendfsync:
     每秒同步:appendfsync always  同步持久化每次发生数据变更会被立即记录到磁盘,性能较差但数据完整性比较好.
     每修改同步:appendfsync everysec    异步操作,每秒记录   如果一秒内宕机,有数据丢失.
     不同步:appendfsync no   从不同步.
(4) No-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性。
(5) Auto-aof-rewrite-min-size:设置重写的基准值。
(6) Auto-aof-rewrite-percentage: 设置重写的基准值。

10.Redis 集群
cluster-enabled yes:启用或停用集群

    更多详细配置,请:http://www.cnblogs.com/kreo/p/4423362.html