1、上传并编译

上传redis-3.2.13.tar.gz

tar -zxvf redis-3.2.13.tar.gz

cd redis-3.2.13

make

注意:

可能需要安装gcc 执行yum install gcc-c++)

如果出现zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory这样的错误,则需要 make MALLOC=libc

创建日志目录

mkdir -p /home/jyapp/redis-3.2.13/logs

 

2、部署建议

建议至少使用3台虚机(1主1从3哨兵)

1、主redis,1个哨兵

2、从redis,1个哨兵

3、1个哨兵

这种情况,当其中一台虚机完全宕机重启的情况下,也能够完成主从切换,使得redis可用

三、修改redis.conf、sentinel.conf 配置文件

主机 redis.conf 配置

daemonize 改为 yes //允许后台运行

protected-mode no //允许从其他主机连接redis端口

port 8379 如果在原有主机上升级部署需要改端口

pidfile 默认不用改

logfile 指定到 redis目录下的 "/home/jyapp/redis-3.2.13/logs/redis.log"

maxclients 4096 增加最大连接的客户端数量配置

tcp-keepalive 修改为 60

requirepass master123 //redis密码

masterauth master123 //主redis密码  主从都需要配置,用于主从同步KEY值
# bind 127.0.0.1 //将bind注释,使redis端口可以绑定到任意IP
从机 redis.conf 配置

daemonize 改为 yes //允许后台运行

protected-mode no//允许从其他主机连接redis端口

port 8379 如果在原有主机上升级部署需要改端口

pidfile 默认不用改

logfile 指定到 redis目录下的 "/home/jyapp/redis-3.2.13/logs/redis.log"

maxclients 4096 增加最大连接的客户端数量配置

tcp-keepalive 修改为 60

masterauth master123 //主redis密码  主从都需要配置,用于主从同步KEY值

requirepass master123 //redis密码

slaveof IP 端口 //注意:IP 为redis主机的服务器IP

# bind 127.0.0.1  //将bind注释,使redis端口可以绑定到任意IP
配置监听服务 sentinel.conf

主机,从机 保持一致即可

可以清空原配置文件,然后直接复制下面信息

主从机 都要配置上主机的IP和端口(如 主机IP 6379为主机的ip和端口):



port 28379
daemonize yes
protected-mode no (3.2版本之后需要添加)
logfile "/home/jyapp/redis-3.2.13/logs/sentinel.log"
dir /home/jyapp/redis-3.2.13/
sentinel monitor mymaster 主机IP 8379 2
sentinel down-after-milliseconds mymaster 8000
sentinel failover-timeout mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel deny-scripts-reconfig yes
sentinel auth-pass mymaster master123 //密码

四、启动

先启动主机的服务,再启动从机的服务

src/redis-server redis.conf

再启动监听服务

src/redis-sentinel sentinel.conf



可以用下列命令 来查看服务

src/redis-cli -p 8379 -a 密码 info

src/redis-cli -p 28379 -a 密码  info

五、验证

在主redis中验证主从同步:

src/redis-cli -p8379 -a 密码

登陆后执行

set test1 12345

使用keys * 查看是否有健值

如有健值,再到从redis上执行keys *查看健值是否己经同步

验证主从切换

将主进程的redis及哨兵进程杀掉,在从redis中执行

src/redis-cli -p 8379 -a 密码   info 

验证role是否己经变为master