redis、Sentinel 常见配置

redis 配置文件名称:redis.conf,常用基础配置:

// 获取某个配置项的值
config get <setting-name>;
// 在线设置某个配置项的值
config set <setting-name> <value>;
// 指定包含其它配置文件
include /path/to/local.conf;
// 是否以守护进程的方式启动,默认不是
daemonize no;
// 以守护进程启动时,pid(进程编号)将会写入 pidfile 配置的文件
pidfile /var/run/redis.pid;
// 端口配置,默认 6379
port 6379;
// 绑定主机地址
bind 127.0.0.1;
// 配置 redis 节点密码,默认没有密码。有密码时通过 auth xxx 命令验证密码
requirepass foobared;
// 指定数据库数量,默认为 0,可以通过 select n 连接指定数据库
databases 0;

守护进程:一种特殊的进程,不再依附于终端。linux 操作系统中,系统和用户交互的页面就叫终端。如果没有开启守护线程,redis 只会以前台启动,终端关闭时,redis 进程会随着停止。

客户端交互相关配置:

// 客户端闲置多长时间后断开连接,0 表示永不断开
timeout 0;
// redis 最多同时支持客户端数量,默认为 0 表示无限制
maxclients 128;
// 设置向客户端应答时,是否把较小的包合并为一个包发送,默认开启
glueoutputbuf yes;

哈希算法相关配置:

// 指定超过一定的数量的哈希类型 key-value,采用特殊的哈希算法
hash-max-zipmap-entries 64;
// 指定最大的元素超过某一临界值的哈希类型 key-value,采用特殊的哈希算法
hash-max-zipmap-value 512;
// 是否激活重置哈希,默认为开启
activerehashing yes;

重置哈希:redis 在每 100 毫秒时使用 1 毫秒的 CPU 时间来对 redis 的 hash 表进行重新 hash,降低内存的使用

内存淘汰策略相关配置:

// 默认 noeviction 直接报错,包含:noeviction、allkeys-lru、allkeys-lfu、allkeys-random、volatile-lru、volatile-lfu、volatile-random、volatile-ttl
maxmemory-policy volatile-lru;

持久化相关配置:

// 指定在 seconds 秒内发送 changes 次改变就将数据同步到 rdb 文件
// 不配置表示不开启 rdb 持久化
save <seconds> <changes>;
// 指定 rdb 文件是否压缩,默认是。redis 采用 LZF 压缩,关闭后 CPU 压力减轻但 rdb 文件更大
rdbcompression yes;
// 指定 rdb 文件名称
dbfilename dump.rdb;
// 指定 rdb 文件路径
dir ./;
// 指定是否开启 aof 持久化,默认关闭
appendonly no;
// 指定 aof 文件名称
appendfilename appendonly.aof;
// 指定 aof 文件从缓存同步到磁盘的频率,no 表示由操作系统决定,everysec 表示每秒,always 表示每次更新操作
appendfsync everysec;

主从同步相关配置:

// slave 节点同步的 master 节点的 ip 和 端口
slaveof <masterip> <masterport>;
// master 节点有密码时,配置 master 节点密码
masterauth <master-password>;

虚拟内存相关配置(了解,早都废弃了):

// 指定 redis 最大内存限制,达到限制触发内存淘汰策略。内存淘汰后仍然不行触发 VM 机制:将 value 放入 swap 区
maxmemory <bytes>;
// 是否开启虚拟内存
vm-enabled no;
// 虚拟内存文件路径,不可多节点共享
vm-swap-file /tmp/redis.swap;
// 将大于 vm-max-memory 的数据放入虚拟内存(key 在内存,value 在虚拟内存),默认为0,表示所有 value 放入虚拟内存
vm-max-memory 0;
// Redis swap 文件分成了很多的 page,指定每个分页的大小
// 一个对象可以保存在多个 page 上面,但每个 page 只供一个对象使用
vm-page-size 32;
// 指定 page 数量
vm-pages 134217728;
// 设置访问 swap 文件的线程数,为 0 表示串行,延时较长
vm-max-threads 4;

swap 区:交换区,系统在物理内存不够时,与 Swap 进行交换,保存超过物理内存的数据

日志相关配置:

// 指定日志级别,从低到高分别为:debug、verbose、notice、warning,默认 notice
loglevel notice;
// 日志记录方式,默认标准输出
logfile stdout;

哨兵模式 Sentinel 配置文件名称:sentinel.conf,常见配置如下:

// 指定端口号
port 26380;
// 指定工作路径
dir "/usr/local/redis-6380";
// 指定工作模式,是否守护线程
daemonize yes;
// 指定日志名称
logfile "./sentinel.log";

监视配置如下:

// 指定哨兵监控的 master 节点配置
// mymaster redis 节点名称,1 表示判断 redis 节点失效至少需要 1 个 Sentinel 节点同意
sentinel monitor mymaster 192.168.137.40 6379 1;
// redis 节点存在密码时验证密码
sentinel auth-pass mymaster 123456;
// 哨兵监控的节点多久不能正常返回消息后置为主观下线状态
sentinel down-after-milliseconds mymaster 5000;
// 故障转移(主备切换)最大时长,超过该时长未完成转移则认为本次转移失败
sentinel failover-timeout mymaster 18000;
// 当发生故障转移时,最多同时有多少个 slave 节点同时从新 master 节点同步数据
// 值越小故障转移时间越长,值越大同时有更少的 slave 节点可以执行 get 操作
sentinel parallel-syncs <master-name> <numslaves>;
// 配置当出现某种状态后出发脚本,例如异常通知管理员等等。脚本返回1将重复执行,大于1将不再执行
// 当 sentinel 监控节点有任何警告级别的事件发生时调用该脚本,常用来发邮件
sentinel notification-script <master-name> <script-path>;
// 当 sentinel 监控节点发生故障转移时调用该脚本,用来通信新的主备机器
sentinel client-reconfig-script <master-name> <script-path>;

启动监视后自动生成的配置:

sentinel config-epoch mymaster 0;
sentinel leader-epoch mymaster 1;
// 指定 slave 节点的 IP 和端口,故障转以后该值会改变
sentinel known-slave mymaster 10.5.35.3 6380;
// 指定其它正在监视 master 节点的哨兵节点
// 后面的 ip、端口都是 Sentinel 节点的值
sentinel known-sentinel mymaster 192.168.137.40 26379 7a88891a6147e202a53601ca16a3d438e9d55c9d;
sentinel current-epoch 1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值