Redis学习之Redis 6.0 Redis.conf详解


# 通过指定配置文件启动Redis服务
# ./redis-server /path/to/redis.conf

# 引入配置文件
# include /path/to/local.conf
# include /path/to/other.conf

# 自定义Redis模块
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so

# 开启时只能通过指定IP访问,不能远程连接,若没有bind则任意IP皆可访问
# bind 127.0.0.1    

# 保护模式,若配置里没有指定bind和requirepass,开启该参数后,redis只能进行本地访问
protected-mode yes   

# 端口号
port 6379    

# TCP连接中已完成队列(完成三次握手之后)的长度
tcp-backlog 511    

# 指定 unix socket 的路径
# unixsocket /tmp/redis.sock
# unixsocketperm 700

# 设置客户端连接时的超时时间(0表示禁用)
timeout 0

# 定时向client发送tcp_ack包来探测client是否存活的
tcp-keepalive 300

# Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程启用守护进程后,Redis会把pid写到一个pidfile中
daemonize yes 

# 可以通过upstart和systemd管理Redis守护进程。如果从upstart或systemd运行Redis,Redis可以与督树进行交互
# supervised no - 没有监督互动
# supervised upstart - 通过将Redis置于SIGSTOP模式来通知upstart
# supervised systemd - 通过将READY = 1写入$ NOTIFY_SOCKET来通知systemd
# supervised auto - 基于UPSTART_JOB或NOTIFY_SOCKET环境变量,检测upstart或systemd方法
supervised no

# 指定pid文件生成的位置
pidfile /www/server/redis/redis.pid 

# 1.debug:会打印出很多信息,适用于开发和测试阶段
# 2.verbose(冗长的):包含很多不太有用的信息,但比debug要清爽一些
# 3.notice:适用于生产模式
# 4.warning:警告信息
loglevel notice

# 指定日志文件生成的位置
logfile "/www/server/redis/redis.log"

# 默认16个数据库
databases 16

# 是否总是显示logo
always-show-logo yes

#   禁用快照(系统某个状态下的各种数据记录在一个文件里)
#   save ""

save 900 1    #在900秒(15分钟)内,如果至少有1个key发生变化,则内存快照,即持久化
save 300 10    #在300秒(5分钟)内,如果至少有10个key发生变化,则内存快照,即持久化
save 60 10000    #在60秒(1分钟)内,如果至少有10000个key发生变化,则内存快照,即持久化

# 若bgsave快照出现问题则停止写入
stop-writes-on-bgsave-error yes

# 对于存储到磁盘中的快照,是否进行LZF压缩存储,若不想消耗CPU进行压缩处理可关闭
rdbcompression yes

# 5.0之后,一个CRC64的校验就被放在了文件末尾,当存储或者加载rbd文件的时候会有一个10%左右的性 
能下降,为了达到性能的最大化,你可以关掉这个配置项
rdbchecksum yes

# 通过RDB方式生成快照文件名
dbfilename dump.rdb

# 参数设置成yes,主从复制中,从服务器可以响应客户端请求;参数设置成no,主从复制中,从服务器将阻塞所有请求,有客户端请求时返回“SYNC with master in # # progress”
replica-serve-stale-data yes

# 为了保持从节点和主节点的一致性,从节点默认只读
replica-read-only yes

# 默认不使用diskless同步方式
repl-diskless-sync no

# 无磁盘diskless方式在进行数据传递之前会有一个时间的延迟,以便slave端能够进行到待传送的目标队列中,这个时间默认是5秒
repl-diskless-sync-delay 5

# 是否启用TCP_NODELAY,如果启用则会使用少量的TCP包和带宽去进行数据传输到slave端,当然速度会比较慢;如果不启用则传输速度比较快,但是会占用比较多的带宽
repl-disable-tcp-nodelay no

# slave端的优先级设置,值是一个整数,数字越小表示优先级越高。当master故障时将会按照优先级来选择slave端进行恢复,如果值设置为0,则表示该slave永远不会被选择
replica-priority 100

# 设置密码,可通过config set requirepass password设置
# requirepass foobared

# 禁用某些命令,如:flushdb,flushall等,活使用复杂新命令代替
# rename-command FLUSHALL agh76hb8cvi9dfolp0wyr7cxy9z
# rename-command CONFIG ""

# 最大客户端连接数
# maxclients 10000

lazyfree-lazy-eviction no    #内存满逐出
lazyfree-lazy-expire no    #过期key删除
lazyfree-lazy-server-del no    #del命令执行异步删除操作
replica-lazy-flush no    #slave接收完RDB文件后清空数据

# 是否开启AOF持久化机制
appendonly no

#指定AOF持久化生成的文件名
appendfilename "appendonly.aof"

# appendfsync always    #这种模式下每次write后都会调用fsync    
appendfsync everysec    #每秒调用一次fsync
# appendfsync no    #write后不会有fsync调用,由操作系统自动调度刷磁盘,性能是最好的

# 若设置为yes相当于将appendfsync设置为no,这说明并没有执行磁盘操作,只是写入了缓冲区,因此这样并不会造成阻塞(因为没有竞争磁盘),但是如果这个时候redis挂掉,就会丢失数据若设置为yes相当于将appendfsync设置为yes,是最安全的方式,不会丢失数据,但是要忍受阻塞的问题
no-appendfsync-on-rewrite no

# aof文件增长比例,指当前aof文件比上次重写的增长比例大小。aof重写即在aof文件在一定大小之后, 重新将整个内存写到aof文件当中,以反映最新的状态(相当于bgsave)。这样就避免了,aof文件过大而实际内存数据小的问题(频繁修改数据问题)
auto-aof-rewrite-percentage 100

# aof文件重写最小的文件大小,即最开始aof文件必须要达到这个文件时才触发,后面的每次重写就不会根据这个变量了(根据上一次重写完成之后的大小).此变量仅初始化启动redis有效.如果是redis恢复时, 则lastSize等于初始aof文件大小
auto-aof-rewrite-min-size 64mb

# 指redis在恢复时,会忽略最后一条可能存在问题的指令。默认值yes。即在aof写入时,可能存在指令写错的问题(突然断电,写了一半),这种情况下,yes会log并继续,而no会直接恢复失败
aof-load-truncated yes

# 是否开启RDB和AOF的混合持久化
aof-use-rdb-preamble yes

# 设置lua脚本的最大运行时间
lua-time-limit 5000

# 当一个子进程要改写AOF文件,如果以下选项启用,那文件将会在每产生32MB数据时进行同步,这样提交增量文件到磁盘时可以避免出现比较大的延迟
aof-rewrite-incremental-fsync yes

# 当保存RDB文件,如果以下选项启用,那文件将会在每产生32MB数据时进行同步
rdb-save-incremental-fsync yes


 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值