【第三章】Redis 配置文件

redis 主要配置项一览:

# 基本配置

bind 0.0.0.0 #监听地址,可以用空格隔开后多个监听IP

protected-mode yes #redis3.2 之后加入的新特性,在没有设置 bind IP 和密码的时候只允许访问127.0.0.1:6379

port 6379 #监听端口

dir ./ #快照文件保存路径(./ 代表工作目录下的data目录,即/apps/redis/data/)

timeout 0 #客户端和 Redis 服务端的连接超时时间,默认是 0,表示永不超时

daemonize no #默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成yes,当 redis 作为守护进程运行的时候,它会写一个 pid 到 /var/run/redis.pid 文件里面

supervised no #和操作系统相关参数,可以设置通过 upstart 和 systemd 管理 Redis 守护进程, centos 7以后都使用 systemd

pidfile /var/run/redis_6379.pid #pid 文件路径

databases 16 #设置 db 库数量,默认 16 个库

always-show-logo yes #在启动 redis 时是否显示 log

requirepass foobared #设置 redis 连接密码

rename-command #重命名一些高危命令

maxclients 10000 #最大连接客户端

lua-time-limit 5000 #lua 脚本的最大执行时间, 单位为毫秒

maxmemory #最大内存,单位为 bytes 字节,8G 内存的计算方式:8(G)*1024(MB)*1024(KB)*1024(Kbyte),需要注意的是 slave 的输出缓冲区是不计算在 maxmemory 内。

# 慢查询日志配置

# Slow log是 Redis 用来记录查询执行时间的日志系统, slow log 保存在内存里面,读写速度非常快,因此你可以放心地使用它,不必担心因为开启 slow log 而损害 Redis 的速度。

slowlog-log-slower-than 10000 #以微秒为单位的慢日志记录, 为负数会禁用慢日志, 为 0 会记录每个命令操作。

slowlog-max-len 128 #记录多少条慢日志保存在队列,超出后会删除最早的,以此滚动删除

127.0.0.1:6379> slowlog len
(integer) 14
127.0.0.1:6379> slowlog get
1) 1) (integer) 14
2) (integer) 1544690617
3) (integer) 4
4) 1) "slowlog"
127.0.0.1:6379> SLOWLOG reset
OK

# TCP配置

tcp-backlog 511 #三次握手的时候 server 端收到 client ack 确认号之后的队列值。

tcp-keepalive 300 #tcp 会话保持时间

# 日志配置

loglevel notice #日志级别

logfile "" #日志路径

# 持久化配置

RDB配置

save 900 1 #在 900 秒内有 1 个键内容发生更改就以快照的形式将数据持久化到磁盘
save 300 10
save 60 10000

stop-writes-on-bgsave-error no #快照出错时是否禁止 redis 写入操作

rdbcompression yes #持久化到 RDB 文件时,是否压缩, "yes"为压缩, "no"则反之

rdbchecksum yes #是否开启 RC64 校验,默认是开启

dbfilename dump.rdb #快照文件名

AOF配置

appendonly no #是否开启 AOF 日志记录, 默认 redis 使用的是 rdb 方式持久化,这种方式在许多应用中已经足够用了。但是 redis 如果中途宕机,会导致可能有几分钟的数据丢失,因为 rdb 持久化根据 save 策略来进行持久化。Append Only File 是另一种持久化方式,可以提供更好的持久化特性。 Redis 会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时 Redis 都会先把这个文件的数据读入内存里,先忽略 RDB 文件。

appendfilename "appendonly.aof" #AOF 文件名

appendfsync everysec #aof 持久化策略的配置,no 表示不执行 fsync,由操作系统保证数据同步到磁盘,always 表示每次写入都执行 fsync,以保证数据同步到磁盘,everysec 表示每秒执行一次 fsync,可能会导致丢失这 1s 数据。

no-appendfsync-on-rewrite no #在 aof rewrite 期间,是否对 aof 新记录的 append 暂缓使用文件同步策略,主要考虑磁盘 IO 开支和请求阻塞时间。默认为 no,表示"不暂缓",新的 aof 记录仍然会被立即同步,Linux 的默认 fsync 策略是 30 秒,如果为 yes 可能丢失 30 秒数据, 但由于 yes 性能较好而且会避免出现阻塞因此比较推荐。

auto-aof-rewrite-percentage 100 # 当 Aof log 增长超过指定百分比例时,重写 log file, 设置为 0 表示不自动重写 Aof 日志,重写是为了使 aof 体积保持最小,而确保保存最完整的数据。

auto-aof-rewrite-min-size 64mb #触发 aof rewrite 的最小文件大小

aof-load-truncated yes #是否加载由于其他原因导致的末尾异常的 AOF 文件(主进程被 kill/断电等)

aof-use-rdb-preamble yes #redis4.0 新增 RDB-AOF 混合持久化格式,在开启了这个功能之后, AOF 重写产生的文件将同时包含 RDB 格式的内容和 AOF 格式的内容,其中 RDB 格式的内容用于记录已有的数据,而 AOF 格式的内存则用于记录最近发生了变化的数据,这样 Redis 就可以同时兼有 RDB 持久化和 AOF 持久化的优点(既能够快速地生成重写文件,也能够在出现问题时,快速地载入数据)。

# 主从复制配置

repl-ping-slave-period 10 #slave 根据 master 指定的时间进行周期性的 PING 监测

replica-serve-stale-data yes #当从库同主库失去连接或者复制正在进行,从机库有两种运行方式: 1) 如果 replica-serve-stale-data 设置为 yes(默认设置),从库会继续响应客户端的读请求。 2) 如果 replicaserve-stale-data 设置为 no,除去指定的命令之外的任何请求都会返回一个错误"SYNC with master progress"。

replica-read-only yes #是否设置从库只读

repl-diskless-sync no #是否使用 socket 方式复制数据

目前 redis 复制提供两种方式, disk 和 socket, 如果新的 slave 连上来或者重连的 slave 无法部分同步,就会执行全量同步, master 会生成 rdb 文件, 有 2 种方式: disk 方式是 master 创建一个新的进程把 rdb 文件保存到磁盘,再把磁盘上的 rdb 文件传递给 slave, socket 是 master 创建一个新的进程,直接把 rdb 文件以 socket 的方式发给 slave。disk 方式的时候,当一个 rdb 保存的过程中,多个 slave 都能共享这个 rdb 文件, socket 的方式就是一个个 slave 顺序复制, 只有在磁盘速度缓慢但是网络相对较快的情况下才使用 socket 方式, 否则使用默认的 disk方式。

repl-diskless-sync-delay 30 #diskless 复制的延迟时间,设置 0 为关闭,一旦复制开始还没有结束之前,master 节点不会再接收新 slave 的复制请求,直到下一次开始

repl-timeout 60 #复制连接超时时间,需要大于 repl-ping-slave-period,否则会经常报超时

repl-disable-tcp-nodelay no #在 socket 模式下是否在 slave 套接字发送 SYNC 之后禁用TCP_NODELAY,如果你选择“ yes ”,Redis 将使用更少的 TCP 包和带宽来向 slaves 发送数据。但是这将使数据传输到 slave上有延迟, Linux 内核的默认配置会达到 40 毫秒, 如果你选择了 "no" 数据传输到 salve 的延迟将会减少但要使用更多的带宽

repl-backlog-size 1mb #复制缓冲区大小, 只有在 slave 连接之后才分配内存。

repl-backlog-ttl 3600 #多次时间 master 没有 slave 连接,就清空 backlog 缓冲区。

replica-priority 100 #当 master 不可用, Sentinel 会根据 slave 的优先级选举一个 master。最低的优先级的 slave,当选 master。而配置成 0,永远不会被选举。

集群配置

cluster-enabled yes #是否开启集群模式,默认是单机模式

cluster-config-file nodes-6379.conf #由 node 节点自动生成的集群配置文件

cluster-node-timeout 15000 #集群中 node 节点连接超时时间

cluster-replica-validity-factor 10 #在执行故障转移的时候可能有些节点和 master 断开一段时间数据比较旧, 这些节点就不适用于选举为 master, 超过这个时间的就不会被进行故障转移

cluster-migration-barrier 1 #一个主节点拥有的至少正常工作的从节点, 即如果主节点的 slave 节点故障后会将多余的从节点分配到当前主节点成为其新的从节点。

cluster-require-full-coverage no #集群槽位覆盖, 如果一个主库宕机且没有备库就会出现集群槽位不全, 那么 yes 情况下 redis 集群槽位验证不全就不再对外提供服务,而 no 则可以继续使用但是会出现查询数据查不到的情况(因为有数据丢失)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 228,923评论 6 535
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,740评论 3 420
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 176,856评论 0 380
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,175评论 1 315
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,931评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,321评论 1 324
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,383评论 3 443
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,533评论 0 289
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,082评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,891评论 3 356
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,067评论 1 371
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,618评论 5 362
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,319评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,732评论 0 27
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,987评论 1 289
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,794评论 3 394
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,076评论 2 375

推荐阅读更多精彩内容

  • ## Generated by install_server.sh ## # Redis configuratio...
    依然饭太稀阅读 2,045评论 0 5
  • Redis 配置文件示例 注意:想要读取配置文件,Redis的第一个参数必须是文件的路径 ./redis-serv...
    起个名忒难阅读 1,218评论 0 1
  • 一、Redis高可用概述 在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。 我们知道,在w...
    空语阅读 1,606评论 0 2
  • 作者:黄湘龙 花了三天时间,把REDIS 3.0.6英文版大部分都翻译过来了,还有部分没翻译完,等我慢慢更新本文章...
    楚骧阅读 1,740评论 0 0
  • 检查:近段时间身体稍有不适,今天早上先生陪着去医院检查,结果还算小毛病,不过医生一再强调说,这个毛病和睡眠和情...
    吉祥Cc阅读 178评论 0 1