1、单机redis安装
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
cd /usr/local/
tar -zxvf redis-5.0.3.tar.gz
mv redis-5.0.3/ redis
cd redis/src
(需要gcc编译)
./configure
make && make install
主节点:
#根据需求是否修改
port 6379
#允许后台启动
daemonize yes
#允许来自非本地的连接
bind 0.0.0.0
#本机redis密码
requirepass "123456"
#主从交互密码--主节点不需要改配置 仅从节点配置
masterauth "123456"
#log目录必须手动创建
logfile /var/log/redis/redis-master.log
从节点:从1,从2
#根据需求是否修改
port 6379
#允许后台启动
daemonize yes
#允许来自非本地的连接
bind 0.0.0.0
#本机redis密码
requirepass "123456"
#主从交互密码--主节点不需要改配置 仅从节点配置
masterauth "123456"
#log目录必须手动创建
logfile /var/log/redis/redis-master.log
#声明它是谁的从服务器
slaveof 192.168.200.228 6379
主节点哨兵配置:sentinel.conf
主节点哨兵配置: redis安装以后,你会在安装目录发现sentinel.conf文件,redis为我们准备了哨兵配置的,但是默认配置无用的太多,我选择备份此文件,重新自己编辑;
mv sentinel.conf{,.a}
vim sentinel.conf
填充以下内容: 主从配置一样
#默认端口
port 26379
#允许后台启动
daemonize yes
protected-mode no #关闭保护模式(此配置很重要,不配置将无法实现主从切换)
logfile "/usr/local/redis/logs/sentinel.log"
sentinel monitor mymaster 192.168.200.228 6379 1 #配置选举机制,哨兵时刻监控主服务器的6379端口,后面的“1”是当有一票认为它宕机以后就开始主从切换
sentinel auth-pass mymaster "123123" #配置redis交互密码(redis无密码时不需要此配置)
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel必须最少三台,否则故障转移无效。
启停、主从复制、故障转移
启动与停止:
脚本位于redis安装目录src下
前端模式启动:
./redis-server
后台启动方式:
./redis-server ../redis.conf
如果在同一台机器多端口启动redis,则需要复制redis.conf文件,启动时指定。
登录redis命令行:
./redis-cli -a 123456
退出:
quit
# 启动哨兵进程
./redis-sentinel ../sentinel.conf
停止:
./redis-cli shutdown #配置redis密码后该命令会失效,使用以下命令停止
redis-cli -a password shutdown
远程登录:
./redis-cli -h 192.168.200.227 -p 6379 -a 123456
主从复制测试:
主节点:
set testkey value1
从节点:
get testkey
故障转移测试:
手动停止主节点redis进程
从节点查询:info replication
测试主从复制。
恢复master节点(恢复后也只是作为slave了,不会再成为master,除非故障再次转移)
如果当先节点信息显示为 master,则sentinel可用。
springboot配置Sentinel
spring