title: 【学习之路】Redis配置文件
draft: true
tags:


Redis配置文件位置

  1. redis配置文件所在位置redis安装目录下的redis.conf

Units

Redis配置文件学习 - 图1

  1. 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit
  2. 通过units are case insensitive so 1GB 1Gb 1gB are all the same.可知单位不区分大小写

INCLUDES

Redis配置文件学习 - 图2

  1. 可以通过includes包含,redis.conf作为总闸,包含其他配置文件

MODULES

通过loadmodule可以引入自定义模块来新增一些功能

NETWORK

  1. bind:绑定redis服务器网卡ip默认为127.0.0.1
  2. port:指定redis运行端口默认为6379
  3. timeout:设置客户端连接超时时间,单位秒
  4. tcp-keepalive:周期性检测客户端是否健康

GENERAL

  1. daemonize 设置为yes让redis在后台运行
  2. pidfile:配置PID文件路径
  3. logleveel:设置日志级别,默认为notice一共有4个值

    1. debug
    2. verbose
    3. notice
    4. warning
  4. logfile:配置log文件地址
  5. databases:设置数据库数量默认为16个

SNAPSHOTTING

  1. save:用来配置出发Redis的持久化条件

    1. save 900 1 表示900秒内如果有一个key值变化就保存
    2. save 300 10 表示300秒内如果有10个key值变化就保存
    3. save 60 10000 表示60秒内如果有一万个key值变化就保存
  2. stop-writes-on-bgsave-error:默认值为yes 设置为no表示不在乎数据一致性
  3. rdbcompression:对于磁盘中的快照,设置是否进行压缩储存,如果是的话Redis会使用LZF算法进行压缩,如果不想损耗CPU性能,可以关闭这个功能
  4. rdbchecksum:默认值为yes,在储存快照后让redis使用CRC64算法进行数据校验,此选项会有10%性能损耗
  5. dbfilename:设置快照文件名,默认为:dump.rdb
  6. dir:设置快照文件的存放路径

APPEND ONLY MODE

  1. appendonly:是否打开AOF
  2. appendfilename:AOF配置文件名称
  3. Appendfsync

    1. Always:同步持久化 每次发生数据变更会被立即记录到磁盘 性能较差但数据完整性比较好
    2. Everysec:出厂默认推荐,异步操作,每秒记录 如果一秒内宕机,有数据丢失
    3. NO关闭
  4. No-appendfsync-on-rewrite:重写时是否可以运用Appendfsync,用默认no即可,保证数据安全性
  5. Auto-aof-rewrite-min-size:设置重写的基准值
  6. Auto-aof-rewrite-percentage:设置重写的基准值

REPLICATION

  1. slave-serve-stale-data:默认值为yes,当一个slave与master失去联系时会有两种状态

    1. 如果为yes,slave任然会应答客户端请求,但返回的数据可能时过时的
    2. 如果为no,在你执行除了 info he salveof 之外的其他命令时,slave 都将返回一个 “SYNC with master in progress” 的错误
  2. slave-read-only:配置Redis是否只读Redis
  3. repl-diskless-sync:默认为no,从主数据赋值是否只使用无硬盘功能
  4. repl-diskless-sync-delay:当启用无硬盘备份,服务器等待一段时间后才会通过套接字向从站传送RDB文件
  5. repl-disable-tcp-nodelay:同步之后是否禁用从站上的TCP_NODELAY 如果你选择yes,redis会使用较少量的TCP包和带宽向从站发送数据。但这会导致在从站增加一点数据的延时。

SECURITY

  1. rename-command:命令重命名
  2. requirepass:设置redis连接密码

CLIENTS

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

MEMORY MANAGEMENT

  1. maxmemory:设置Redis的最大内存,如果设置为0 。表示不作限制
  2. maxmemory-policy :当内存使用达到maxmemory设置的最大值时,redis使用的内存清除策略。

    1. volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
    2. allkeys-lru 利用LRU算法移除任何key
    3. volatile-random 移除设置过过期时间的随机key
    4. allkeys-random 移除随机ke
    5. volatile-ttl 移除即将过期的key(minor TTL)
    6. noeviction noeviction 不移除任何key,只是返回一个写错误 ,默认选项
  3. maxmemory-samples :LRU 和 minimal TTL 算法都不是精准的算法,但是相对精确的算法

LUA SCRIPTING

lua-time-limit:一个lua脚本执行的最大时间,单位为ms。默认值为5000.


参考文章:https://www.cnblogs.com/ysocean/p/9074787.html#_label2