高效、安全的部署Redis哨兵集群

1. 环境准备

1.1. 硬件配置

标准化项说明备注
IO设置写策略设置Write Back,禁用Write Through
IO子系统设置使用Raid1+0若采用PCIe-SSD,则可不用做Raid
关闭物理磁盘cache,防止丢数据
写策略设置Write Back,禁用Write Through
关闭预读,使得宝贵的cahce用来作为写缓存
BIOS标准设置开启最大性能模式,选择DAPC或者选择Performance模式不同的主板配置上有差异
Memory Frequency(内存频率)选择Maximum Performance模式不同的主板配置上有差异
关闭NUMA不同的主板配置上有差异
文件系统数据存储文件系统类型建议EXT4格式该项不做强制要求XFS类型也可以
网络配置使用mode=4模式的网卡绑定双网卡连接不同的交换机,交换机上需要做适配
数据挂载目录/dataRedis数据库实例的所有文件全部存放在/data目录下;

1.2. 操作系统软件包&第三方工具

软件包说明备注
gcc至少是C89兼容的
GNU make版本3.80及以上
tar解压源码包时用到的tar解压工具

1.3. 关闭SELINUX

临时禁用selinux:

# setenforce 0
# more /etc/selinux/config | grep -Ev "$|[#;]"

永久禁用selinux:

# vi /etc/selinux/config

将
SELINUX= enforcing
修改为
SELINUX=disabled 
:x保存退出

1.4. 配置防火墙

如需要禁用防火墙,可执行如下命令:

1)若是CentOS 7.x系统,可执行如下命令禁用防火墙:
关闭防火墙:
# systemctl stop firewalld.service
禁用防火墙开机自启:
# systemctl disable firewalld.service
查看防火墙状态:
# systemctl status firewalld.service

2)若是Ubuntu系统,可执行如下命令禁用防火墙:
# iptables -P INPUT ACCEPT

3)其他系统禁用防火墙命令,请自行查找。

如需配置防火墙规则,可参照如下示例:

# vim /etc/iptables.rules

*filter
:INPUT ACCEPT [3715:523951]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1925:209933]
-A INPUT -i lo -j ACCEPT
#允许ssh端口通过
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#允许icmp
-A INPUT -p icmp -j ACCEPT
#允许Redis服务器间互通,即Redis服务器间可互相访问Redis端口为2011~2012的Redis实例
-A INPUT -s 192.168.111.111/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
-A INPUT -s 192.168.111.112/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
-A INPUT -s 192.168.111.113/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
#运行其他服务器访问Redis,如允许172.172.122.222服务器访问本地Redis端口为2011~2012的Redis实例
-A INPUT -s 172.172.122.222/32 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
#暴露本地22201服务端口
-A INPUT -p tcp -m tcp --dport 22201 -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
COMMIT

防火墙规则配置完毕后,将配置文件导入:

# iptables-restore < /etc/iptables.rules

导入防火墙规则配置文件后,打开防火墙:

# iptables -P INPUT DROP

如需要开机自动恢复规则,把恢复命令添加到启动脚本:

# echo '/sbin/iptables-restore < /etc/iptables.rules' >>/etc/rc.local
# echo '/sbin/iptables -P INPUT DROP' >>/etc/rc.local

# cat /etc/rc.local

1.5. 优化系统参数


编辑系统配置文件sysctl.conf:

# vim /etc/sysctl.conf

vm.overcommit_memory=1
vm.swappiness = 0
net.core.somaxconn = 1024
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.nf_conntrack_max = 655350
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_local_reserved_ports = 2011-2012,12011

^: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。

装载ip_conntrack模块:

# modprobe ip_conntrack

载入sysctl配置文件:

# sysctl -p

1.6. 修改hugepage配置

临时禁用hugepage:

# echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled

为了使机器重启后THP配置依然生效,可以在/etc/rc.local中追加:

# echo '/bin/echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

2. 部署Redis实例

2.1. 节点信息

IP地址规划
192.168.111.111此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例
192.168.111.112此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例
192.168.111.113此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例

2.2. 创建安装目录

规划目录:

# mkdir -p /data/third_party/redis/2011/{bin,data,run,logs,conf} 
# mkdir -p /data/third_party/redis/2002/{bin,data,run,logs,conf} 
路径说明
/data/third_party/redis/2011/binRedis实例安装目录(二进制解压包),安装介质目录只存放安装介质,目录名:$port/bin,不存放任何配置文件、数据文件等。
/data/third_party/redis/2011/dataRedis实例数据文件目录
/data/third_party/redis/2011/run存放Redis实例的redis.pid和数据库启停脚本等
/data/third_party/redis/2011/logs存放Redis实例的日志、哨兵日志等
/data/third_party/redis/2011/conf存放Redis实例的参数文件

2.3. 安装Redis实例

2.3.1. 安装依赖包

# apt-get install make
# apt-get install gcc

2.3.2. 下载安装包、编译安装

# wget http://download.redis.io/releases/redis-4.0.14.tar.gz
# cp redis-4.0.14.tar.gz /data/third_party/redis/2011/bin/
# cd /data/third_party/redis/2011/bin/
# tar zxvf  redis-4.0.14.tar.gz -C ./
# cd redis-4.0.14
# make MALLOC=libc

2.4. 配置Redis实例的参数

2.4.1. 编辑示例文件

# vim /data/third_party/redis/2011/conf/6379.conf


daemonize yes 

pidfile "/data/third_party/redis/2011/run/2011.pid" 
logfile "/data/third_party/redis/2011/logs/2011.log" 

port 2011 

dbfilename "dump-2011.rdb" 
dir "/data/third_party/redis/2011/data" 

tcp-backlog 511 

timeout 0 
tcp-keepalive 0 
loglevel notice 

databases 16 

repl-backlog-size 100mb

min-slaves-max-lag 10

#save 900 1 
#save 300 10 
#save 60 10000 
save "" 

maxmemory 31005464653 
maxmemory-policy allkeys-lru 

protected-mode no 
bind 0.0.0.0 

stop-writes-on-bgsave-error yes 
rdbcompression yes 

rdbchecksum yes 

slave-serve-stale-data yes 

slave-read-only yes 

repl-diskless-sync no 

repl-diskless-sync-delay 5 

repl-disable-tcp-nodelay no 

slave-priority 100 

appendonly no 

appendfilename "appendonly-2011.aof" 

appendfsync no 

no-appendfsync-on-rewrite no 

auto-aof-rewrite-percentage 100 
auto-aof-rewrite-min-size 64mb 

aof-load-truncated yes 

lua-time-limit 5000 

slowlog-log-slower-than 10000 
slowlog-max-len 128 

latency-monitor-threshold 0 

notify-keyspace-events "" 

hash-max-ziplist-entries 512 
hash-max-ziplist-value 64 

list-max-ziplist-entries 512 
list-max-ziplist-value 64 

set-max-intset-entries 512 

zset-max-ziplist-entries 128 
zset-max-ziplist-value 64 

hll-sparse-max-bytes 3000 

activerehashing yes 

client-output-buffer-limit normal 0 0 0 
client-output-buffer-limit slave 1024mb 512mb 60 
client-output-buffer-limit pubsub 32mb 8mb 60 
hz 10 

aof-rewrite-incremental-fsync yes 
maxclients 10000 

# masterauth "hust4400" 
# requirepass "hust4400"

rename-command KEYS XXXX-KEYS
rename-command FLUSHALL XXXX-FLUSHALL
rename-command FLUSHDB XXXX-FLUSHDB

2.4.2. 批量生成配置文件

编辑脚本cp_conf.sh:

# vim /data/third_party/redis/2011/conf/cp_conf.sh 

#!/bin/bash

for ((i=2011;$i <= 2012; i=$i+1))
{
       cd /data/third_party/redis/2011/conf
       cp 6379.conf $i.conf 
       sed -i "s,2011,$i,g" $i.conf
       sleep 1
}

执行脚本,批量生成多个配置文件:

# chmod +x /data/third_party/redis/2011/conf/cp_conf.sh 
# sh /data/third_party/redis/2011/conf/cp_conf.sh 

删除单机配置文件6379.conf和脚本:

# rm -rf /data/third_party/redis/2011/conf/6379.conf
# rm -rf /data/third_party/redis/2011/conf/cp_conf.sh

检查配置文件参数:

# for((i=2011;i<=2012;i++));do grep -E 'tcp-keepalive|appendfsync' /data/third_party/redis/2011/conf/$i.conf;done

2.5. 配置环境变量

编辑profile配置文件

# vim /etc/profile

...
unset i
unset -f pathmunge
export LD_LIBRARY_PATH=./
ulimit -SHn 655350
REDIS_HOME=/data/third_party/redis
export REDIS_HOME
PATH=PATH:REDIS_HOME/bin

执行如下命令,使配置的环境变量在当前终端立即生效:

# source /etc/profile

2.6. 启动Redis实例

启动Redis实例:

# redis-server /data/third_party/redis/2011/conf/2011.conf
# redis-server /data/third_party/redis/2011/conf/2012.conf

查看Redis实例进程信息:

# ps -ef|grep -v grep|grep "redis-server 0.0.0.0:201" 

3. 配置Redis复制

3.1. Redis节点规划

Redis主节点Redis从节点备注
192.168.111.112:2011192.168.111.111:2012第一组复制
192.168.111.113:2011192.168.111.112:2012第二组复制
192.168.111.111:2011192.168.111.113:2012第三组复制

3.2. 配置Redis节点复制关系

# redis-cli -h 192.168.111.111 -p 2012 slaveof 192.168.111.112 2011
# redis-cli -h 192.168.111.112 -p 2012 slaveof 192.168.111.113 2011
# redis-cli -h 192.168.111.113 -p 2012 slaveof 192.168.111.111 2011

3.3. 查看Redis节点角色

# for((i=2011;i<=2012;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i}  role; done

# for((i=2011;i<=2012;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i}  role; done

# for((i=2011;i<=2012;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i}  role; done

3.4. 配置Redis节点的maxmemory

可根据需要,配置Redis节点的最大内存:

批量配置Redis节点的最大内存:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i}  config set maxmemory 10G; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i}  config set maxmemory 10G; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i}  config set maxmemory 10G; done


查看配置是否正确:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i}  config get maxmemory; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i}  config get maxmemory; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i}  config get maxmemory; done


持久化至配置文件:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i}  config rewrite; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i}  config rewrite; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i}  config rewrite; done

4. 部署哨兵

ps -ef |grep redis-sentinel | grep -v grep | awk '{print $2}' | xargs kill -9

4.1. 编辑哨兵文件

编辑配置文件sentinel.conf:

# vim /data/third_party/redis/2011/conf/sentinel.conf

port 12011
daemonize yes
dir "/data/third_party/redis/2011/data"
pidfile "/data/third_party/redis/2011/run/sentinel.pid"
loglevel notice
logfile "/data/third_party/redis/2011/logs/sentinel.log"
protected-mode no


sentinel monitor test_sentinel_g1 192.168.111.111 2011 2
sentinel down-after-milliseconds test_sentinel_g1 10000
sentinel failover-timeout test_sentinel_g1 60000

sentinel monitor test_sentinel_g2 192.168.111.112 2011 2
sentinel down-after-milliseconds test_sentinel_g2 10000
sentinel failover-timeout test_sentinel_g2 60000

sentinel monitor test_sentinel_g3 192.168.111.113 2011 2
sentinel down-after-milliseconds test_sentinel_g3 10000
sentinel failover-timeout test_sentinel_g3 60000

4.2. 启动哨兵

启动哨兵

# redis-sentinel /data/third_party/redis/2011/conf/sentinel.conf

查看哨兵进程

# ps -ef| grep redis-sentinel| grep 12011|grep -v grep

4.3. 查看哨兵集群

查看监控主实例:

# redis-cli -p 12011 info sentinel

Sentinel
sentinel_masters:3
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=test_sentinel_g1,status=ok,address=192.168.111.111:2011,slaves=1,sentinels=3
master1:name=test_sentinel_g3,status=ok,address=192.168.111.113:2011,slaves=1,sentinels=3
master2:name=test_sentinel_g2,status=ok,address=192.168.111.112:2011,slaves=1,sentinels=3

获取监视同一主服务器的其他所有Sentinel的相关信息

# redis-cli -p 12011 SENTINEL sentinels test_sentinel_g1

1)  1) "name"
    2) "909a7acb5c0f0ba8bdd5e8cc232cafb8ed481460"
    3) "ip"
    4) "192.168.111.112"
    5) "port"
    6) "12011"
    7) "runid"
    8) "909a7acb5c0f0ba8bdd5e8cc232cafb8ed481460"
    9) "flags"
   10) "sentinel"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "3"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "248"
   19) "last-ping-reply"
   20) "248"
   21) "down-after-milliseconds"
   22) "10000"
   23) "last-hello-message"
   24) "1888"
   25) "voted-leader"
   26) "?"
   27) "voted-leader-epoch"
   28) "0"
2)  1) "name"
    2) "abebbd7a52d83b0ee3ca60bfc1d3efc88dff8404"
    3) "ip"
    4) "192.168.111.111"
    5) "port"
    6) "12011"
    7) "runid"
    8) "abebbd7a52d83b0ee3ca60bfc1d3efc88dff8404"
    9) "flags"
   10) "sentinel"
   11) "link-pending-commands"
   12) "0"
   13) "link-refcount"
   14) "3"
   15) "last-ping-sent"
   16) "0"
   17) "last-ok-ping-reply"
   18) "248"
   19) "last-ping-reply"
   20) "248"
   21) "down-after-milliseconds"
   22) "10000"
   23) "last-hello-message"
   24) "1767"
   25) "voted-leader"
   26) "?"
   27) "voted-leader-epoch"
   28) "0"

检查可用Sentinel的数量

# redis-cli -p 12011 SENTINEL ckquorum test_sentinel_g1

OK 3 usable Sentinels. Quorum and failover authorization can be reached

5.附录

5.1. Redis基本参数参考

配置类配置名含义默认值建议值
整体配置daemonize是否是守护进程noYes
port端口号6379整数(6380~6395)
loglevel日志级别notice默认
logfile日志文件名/data/cluster001/log
databases可用的数据库16默认
unixsocketunix套接字默认
unixsocketpermunix套接字权限0默认
pidfileredis运行进程的pid文件/var/run/redis.pid/data/cluster001/run
lua-time-limitLua脚本超时时间5000默认
tcp-backlogtcp-backlog511默认
activerehashing是否激活重置hashyes默认
dir工作目录(aof、rdb文件都存放在此目录).//data/cluster001/dump
最大内存策略maxmemory最大可用内存(单位:字节)0(无限制)建议设置最大可用内存
maxmemory-policy内存淘汰策略noeviction默认
maxmemory-sample检测LRU采样数5默认
AOF相关配置appendonly是否开启AOF持久化no视持久化需求,如需要持久化设置为yes
appendsyncAOF同步磁盘频率everyseceverysec
appendfilenameAOF文件名appendonly.aofappendonly-{port}.aof
aof-load-truncated加载AOF文件时,是否忽略AOF不完整的情况,让redis启动yes默认
no-appendfsync-on-rewrite设置为yes表示rewrite期间对新写操作不做fsync,暂时存在缓冲区中,等rewrite完成后再写入no默认
auto-aof-rewrite-min-size触发rewrite的AOF文件最小阀值(单位:MB)64m默认
auto-aof-rewrite-percentage触发rewrite的AOF文件增长比例100默认
aof-rewrite-incremental-fsyncAOF重写过程中,是否采取增量文件同步策略yes默认
RDB相关配置saveRDB保存条件save 900 1 save 300 10 save 60 10000禁用
dbfilenameRDB文件名dump.rdbdump-{port}.rdb
rdbcompressionRDB文件是否压缩yes默认
rdbchecksumRDB文件是否使用校验和yes默认
stop-writes-on-bgsave-errorbgsave执行错误,是否停止Redis接受写请求yes默认
慢查询配置slowlog-log-slower-than记录慢查询的阀值(单位:微秒)10000默认
slowlog-max-len最多记录慢查询的条数128默认
latency-monitor-thresholdRedis服务内存延迟建立0(关闭)默认
数据结构优化配置hash-max-ziplist-entrieshash结构数据优化参数512默认
hash-max-ziplist-valuehash结构数据优化参数64默认
set-max-intset-entriesset结构数据优化参数512默认
zset-max-ziplist-entrieszset结构数据优化参数128默认
zset-max-ziplist-valuezset结构数据优化参数64默认
hll-sparse-max-bytesHyperLogLog数据结构优化参数3000默认
客户端相关配置maxclients最大客户端连接数10000默认
client-output-buffer-limit客户端输出缓冲区限制client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60整数
timeout客户端闲置多少秒后关闭连接(单位:秒)0(永不关闭)300
tcp-keepalived检测TCP连接活性的周期(单位:秒)0(不检测)300
客户端相关配置requirepass密码自定义
bind绑定IP0.0.0.0
masterauth从节点需要配置主节点的密码主节点密码

5.2. 复制参数参考

配置名含义默认值可选值
slaveof指定当前从节点复制那个主节点,参数:主节点ip和port默认
repl-ping-slave-period主节点定期向从节点发送ping命令的周期,用于判断从节点是否存活(单位:秒)10默认
repl-timeout主从节点复制超时时间(单位:秒)60默认
repl-backlog-size复制积压缓存区大小1M100M
repl-backlog-ttl主节点在没有从节点的情况下多长时间后释放复制积压缓存区空间3600默认
slave-priority从节点的优先级100默认
min-slaves-to-write当主节点发现从节点数量小于min-slaves-to-write且延迟小于等于min-slaves-max-lag时,master停止写入操作0默认
min-slaves-max-lag10默认
slave-serve-stale-data当从节点与主节点连接中断时,如果此参数设置为’yes’,从节点可以继续处理客户端请求,否则除info和slaveof命令之外,拒绝所有请求yes默认
slave-read-only从节点是否开启只读模式yes默认
repl-disable-tcp-nodelay是否开启主从复制socket的NO_DELAY选项: yes: Redis会合并小的Tcp包来节省带宽,但是增加了同步延迟 no: 主节点会立即发送同步消息,没有延迟no默认
repl-diskless-sync是否开启无盘复制no默认
repl-diskless-sync-delay开启无盘复制后,需要延迟多少秒后进行创建RDB操作,一般用于同时加入多个从节点时,保证多个从节点可共享RDB5默认

5.3. Redis Cluster参数参考

参数名含义默认值可选值
cluster-node-timeout集群节点超时时间(单位:毫秒)15000默认
cluster-migration-barrier主从节点切换需要的从节点数最小个数1默认
cluster-slave-validity-factor从节点有效性判断因子,当从节点与主节点最后通信时间超过(cluster-node-timeout * slave-validity-factor) + repl-ping-slave-period时,对应从节点不具备故障转移资格。设置为0表示从节点永不过期10默认
cluster-require-full-coverage集群是否需要所有的slot都分配给在线节点,才能正常访问yesNo
cluster-enabled是否开启集群模式yes默认
cluster-config-file集群配置文件名称nodes.confnodes-{port}.conf

5.4. Redis实例参数样例

编辑配置参数文件,如6380.conf:

# vim /data/third_party/redis/2001/conf/6380.conf

^: 若搭建Redis Cluster,需要额外添加参数cluster-enabled yes、cluster-require-full-coverage no、cluster-config-file nodes-2001.conf等。

daemonize yes 

pidfile "/data/third_party/redis/2001/run/2001.pid" 
logfile "/data/third_party/redis/2001/log/2001.log" 

port 2001 

dbfilename "2001.rdb" 
dir "/data/third_party/redis/2001/data" 

tcp-backlog 511 
timeout 0 
tcp-keepalive 0 
loglevel notice 

databases 16 

#save 900 1 
#save 300 10 
#save 60 10000 
save "" 

#maxmemory <bytes> 
maxmemory 31005464653 
maxmemory-policy allkeys-lru 

protected-mode no 
bind 0.0.0.0 

stop-writes-on-bgsave-error yes 
rdbcompression yes 

rdbchecksum yes 

slave-serve-stale-data yes 

slave-read-only yes 

repl-diskless-sync no 

repl-diskless-sync-delay 5 

repl-disable-tcp-nodelay no 

slave-priority 100 

appendonly no 

appendfilename "appendonly-2001.aof" 

appendfsync no 

no-appendfsync-on-rewrite no 

auto-aof-rewrite-percentage 100 
auto-aof-rewrite-min-size 64mb 

aof-load-truncated yes 

lua-time-limit 5000 

slowlog-log-slower-than 10000 
slowlog-max-len 128 

latency-monitor-threshold 0 

notify-keyspace-events "" 

hash-max-ziplist-entries 512 
hash-max-ziplist-value 64 

list-max-ziplist-entries 512 
list-max-ziplist-value 64 

set-max-intset-entries 512 

zset-max-ziplist-entries 128 
zset-max-ziplist-value 64 

hll-sparse-max-bytes 3000 

activerehashing yes 

client-output-buffer-limit normal 0 0 0 
client-output-buffer-limit slave 1024mb 512mb 60 
client-output-buffer-limit pubsub 32mb 8mb 60 
hz 10 

aof-rewrite-incremental-fsync yes 
maxclients 10000 

slaveof master_ip port 
masterauth "xxxx" 
requirepass "xxxx"

5.5. Sentinel实例参数样例

编辑配置参数文件,如sentinel.conf:

# vim /data/third_party/redis/2001/conf/sentinel.conf

port 19705 
daemonize yes 
protected-mode no 
dir "/data/third_party/redis/2001/data" 
logfile "/data/third_party/redis/2001/log/sentinel.log" 
sentinel monitor master_name master_ip port 2 
sentinel auth-pass master_name xxx
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhi@Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值