linux Redis sentinel(哨兵模式)搭建

一、选择版本并下载

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

二、编译安装

tar xzf redis-4.0.10.tar.gz
cd redis-4.0.10
make PREFIX=/usr/local/redis install

三、创建配置文件

cp redis.conf  /usr/local/redis/
cp sentinel.conf  /usr/local/redis/
mkdir workspace

1. 部署预期

  • 单机1主,2从进程
    slaver ip:30001
    master ip:30002
    slaver ip:30003
  • 哨兵进程
    sentinel ip:40000

2.创建预处理配置文件

cd /usr/local/redis/
#1主2从配置
cp redis.conf redis30001.conf
cp redis.conf redis30002.conf
cp redis.conf redis30003.conf
#哨兵配置
cd  sentinel.conf  sentinel40000.conf

3.创建自动修改配置脚本

vim autoEdit.sh

#bin/sh
【参数1】操作的目标文件
【参数2】配置的端口号
#本机IP
IP=110.110.110.110
#也可以使用下面自动获取本机ip的命令,个别机器可能不支持,请自行选择
#IP=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
#设置端口号【第二个参数】
PORT=$2
#密码
REQUIREPASS=www.liudaye.com
#主库IP
MASTERIP=110.110.110.110
#主库密码
MASTERPASS=www.liudaye.com
#主库端口
MASTERPORT=30002
#取消绑定ip设置
sed -i "s/bind 127.0.0.1/bind 127.0.0.1 $IP/g" $1
#设置密码
sed -i "s/# masterauth <master-password>/masterauth $MASTERPASS/g" $1
#设置密码
sed -i "s/# requirepass foobared/requirepass $REQUIREPASS/g" $1
#设置端口号
sed -i "s/port 6379/port $PORT/g"  $1
#设置后台执行
sed -i "s/daemonize no/daemonize yes/g"  $1
#设置进程号
sed -i "s/pidfile \/var\/run\/redis_6379.pid/pidfile \/var\/run\/redis_$PORT.pid/g" $1
#设置日志文件
sed -i "s/logfile \"\"/logfile \"\/usr\/local\/redis\/workspace\/$PORT.log\"/g"  $1
#设置rdb文件
sed -i "s/dbfilename dump.rdb/dbfilename dump$PORT.rdb/g"  $1
#设置工作目录
sed -i "s/dir .\//dir \/usr\/local\/redis\/workspace/g"  $1
#设置AOP文件
sed -i "s/appendfilename \"appendonly.aof\"/appendfilename \"appendonly$PORT.aof\"/g"  $1
#设置appendonly
sed -i "s/appendonly no/appendonly yes/g" $1
#设置主库地址
echo "slaveof $MASTERIP $MASTERPORT" >>$1

4. 修改redis具体配置

sh autoEdit.sh  redis30001.conf 30001
sh autoEdit.sh  redis30002.conf 30002
sh autoEdit.sh  redis30003.conf 30003
#删除master中的slaveof 配置(最后一行)
sed -i '$d' redis30002.conf

5.查看最终详细配置

cat redis30001.conf |grep -Ev "#|^$"

bind 127.0.0.1 110.110.110.110
protected-mode yes
port 30001
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_30001.pid
loglevel notice
logfile "/usr/local/redis/workspace/30001.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump30001.rdb
dir /usr/local/redis/workspace
masterauth liudaye.com
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
requirepass liudaye.com
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly30001.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
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-size -2
list-compress-depth 0
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 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
slaveof 110.110.110.110 30002

6. 修改哨兵配置

#修改绑定IP
bind 127.0.0.1 110.110.110.110
#修改端口
port 40000
#修改工作目录
dir "/usr/local/redis/workspace"
#设置监听主库地址、端口,和选举胜出票数 (1主,2从时配置1)
sentinel monitor mymaster 110.110.110.110 30002 1
#设置master名字mymaster 和密码
sentinel auth-pass mymaster www.liudaye.com
sentinel config-epoch mymaster 8
#后台执行
daemonize yes
#日志文件
logfile "/usr/local/redis/workspace/sentinel40000.log"

四、启动服务

启动主从库服务

cd /usr/local/redis
#启动主库
bin/redis-server  redis30002.conf
#启动从库
bin/redis-server  redis30001.conf
#启动从库
bin/redis-server  redis30003.conf

启动哨兵监控进程

cd /usr/local/redis
#启动哨兵
bin/redis-sentinel sentinel40000.conf
#bin/redis-server sentinel40000.conf --sentinel

五、连接客户端

登录哨兵

bin/redis-cli -h 110.110.110.110 -p 40000

Sentinel 可接受的命令官网

PING :返回 PONG 。
SENTINEL masters :列出所有被监视的主服务器,以及这些主服务器的当前状态。
SENTINEL master <master name>:特定主服务器的当前状态。
SENTINEL slaves <master name>:列出给定主服务器的所有从服务器,以及这些从服务器的当前状态。
SENTINEL sentinels <master name> Show a list of sentinel instances for this master, and their state.
SENTINEL get-master-addr-by-name <master name> : 返回给定名字的主服务器的 IP 地址和端口号。 如果这个主服务器正在执行故障转移操作, 或者针对这个主服务器的故障转移操作已经完成, 那么这个命令返回新的主服务器的 IP 地址和端口号。
SENTINEL reset <pattern>: 重置所有名字和给定模式 pattern 相匹配的主服务器。 pattern 参数是一个 Glob 风格的模式。 重置操作清楚主服务器目前的所有状态, 包括正在执行中的故障转移, 并移除目前已经发现和关联的, 主服务器的所有从服务器和 Sentinel 。
SENTINEL failover : 当主服务器失效时, 在不询问其他 Sentinel 意见的情况下, 强制开始一次自动故障迁移 (不过发起故障转移的 Sentinel 会向其他 Sentinel 发送一个新的配置,其他 Sentinel 会根据这个配置进行相应的更新)。

登录主从库

#从库
bin/redis-cli -h 110.110.110.110 -p 30001
#主库
bin/redis-cli -h 110.110.110.110 -p 30002
#认证
auth www.liudaye.com
#查看信息
info replication
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容