我是在一台服务器上安装了三个redis 一主两从
想安装gcc gcc-c++ make tcl lrzsz
yum -y install gcc gcc-c++ make tcl lrzsz
上传redis的tar包ls查看
我新建了/picclife的目录将redis的包移到/picclife下
mv redis-4.0.1.tar.gz /picclife
解压
tar -zxf redis-4.0.1.tar.gz
做个软连接 方便以后升级
ln -s redis-4.0.1 redis
进入到刚建的连接里
cd redis
安装
make && make install
查看是否安装好(如出现版本号说明redis安装成功)
redis-cli -v
在etc下创建redis目录
mkdir /etc/redis
将redis的配置文件复制到刚健的redis的目录里
cp /picclife/redis/redis.conf /etc/redis/redis_6379.conf
编辑
vim /etc/redis/redis_6379.conf
6379 端口的redis为主:在配置两个6380 6381 为从
启动主
redis-server /etc/redis/redis_6379.conf
在/etc/redis下在复制两给redis的配置文件分别为reids_6380.conf redis_6381.conf
编辑
vim /etc/redis/redis_6380.conf
指定主的ip和端口
vim /etc/redis/redis_6381.conf
指定主的ip和端口
启动
redis-server /etc/redis/redis_6380.conf
redis-server /etc/redis/redis_6381.conf
可以通过 info replication 命令查看主从同步的情况
至此redis的主从就配置好了下面开始配置哨兵sentinel
将redis下的sentinel.conf 复制到/etc/redis下分别是sentinel-6379.conf sentinel-6380.conf sentinel-6380.conf
编辑
vim sentinel-6379.conf
daemonize yes 默认没有需要加 端口号 这个是默认的26379 ,logfile 是日志路径
dir是工作目录
指明主的ip和端口号 2 意思是必须有两个sentinel认为主redis连接不上时,切换从为主,2的选择是sentinel个数一半加1 ,我这里有3个sentinel
( 编辑哨兵配置文件更改如下(搜不到的字段可自己添加):
protected-mode no (去掉注释)
daemonize yes (自行添加守护进程)
dir /tmp
logfile "/var/log/redis/redis_26379.log" (自行添加哨兵的日志)
sentinel monitor mymaster 192.168.52.138 6379 2 (原基础上更改)
sentinel down-after-milliseconds mymaster 30000 (默认)
sentinel parallel-syncs mymaster 1 (默认)
sentinel failover-timeout mymaster 180000 (默认) )
其余的
sentinel-6380.conf sentinel-6380.conf 这两个配置文件和上面的一样,唯一不一样的是 端口 日志路径可以改为不一样的
sentinel-6380.conf 端口是port 26380
sentinel-6380.conf 端口是port 26381
启动sentinel
redis-sentinel /etc/redis/sentinel-6379.conf
redis-sentinel /etc/redis/sentinel-6380.conf
redis-sentinel /etc/redis/sentinel-6381.conf
启动后可以到日志里查看信息
tail -f /redis_2379.log
现在就可以测试里 例:关掉主redsi
查看sentinel的日志会发现从选举成主了
最后注意:我的sentinel 是安装在一台服务器上,如果实在生产中最好分开安装,不要咱庄在一台服务上,sentinel 一半安装为单数。
到此redis的哨兵模式就搭建完成,谢谢