前提:

redis使用的版本是4.0.5,在centos7下安装。首先安装单机版,然后配置一主二从,最后配置哨兵。

一、单机版安装

1.redis安装包redis-4.0.5.tar.gz下载, 可以去redis的官网下载, 地址:Index of /releases/

2.将下载的安装包上传到linux的/usr/local目录, 并进行解压: 

tar -zxvf redis-4.0.5.tar.gz

3.进入到解压完的redis目录中,并执行安装(如果报错,重试执行):

        cd redis-4.0.5

        make && make test && make install

        注意:如果以上安装报错如下

        

redis哨兵下载 redis哨兵部署_数据库

        

        则需要先安装tcl8.6.1-src.tar.gz,再重新解压安装redis。安装tcl8.6.1-src.tar.gz步骤如下:

        wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  

        tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  

        cd  /usr/local/tcl8.6.1/unix/  

        ./configure  

        make  

        make install

4.进入redis的目录中的util目录下

        cd utils

5.将该目录下的redis_init_script文件重命名为redis_6379(6379是redis启动的端口号, 如果要使用其他端口号, 可以将文件命名为其他名称, 端口的修改可以在redis_6379中的REDISPORT配置修改, 默认为6379):

        mv redis_init_script redis_6379

6.然后将redis_6379移动到/etc/init.d目录下:

        mv redis_6379 /etc/init.d

7.创建两个目录/etc/redis, /var/redis/6379:

        cd /etc
        mkdir redis  (存放redis的配置文件)
        cd /var
        mkdir redis
        cd redis
        mkdir 6379  (存放redis的持久化文件)

8.进入到redis的目录中, 找到redis的配置文件redis.conf, 拷贝到/etc/redis下:

        cd /usr/local/redis-4.0.5

        cp redis.conf /etc/redis/

9.并重命名为6379.conf

        cd /etc/redis/

        mv redis.conf 6379.conf

10.修改6379.conf中的配置,搜索以下蓝色字体属性并修改

        (1)daemonize yes  (让redis以后台进行启动)

        (2)port 6379 ( redis的启动端口号)

   (3)dir /var/redis/6379  (持久化文件存储位置)

        (4)requirepass XXXX (删除前面的注释符号#,XXXX为自己的密码 )

        (5)logfile ./redis.log

11.启动redis, 执行如下命令:

        cd /etc/init.d

        chmod 777 redis_6379
        ./redis_6379 start

12.确认redis进程是否启动:

        ps -ef | grep redis

二、一主二从配置

1.准备三台机器

        10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)

        按照上面单机版安装步骤安装好redis

2.修改10.12.12.191(主)配置文件6379.conf

cd /etc/redis/

        vi 6379.conf

        搜索以下蓝色字体属性并修改:

        bind 0.0.0.0 (表示允许所有远程访问)

        protected-mode no   (关闭保护模式,可以外部访问)

        masterauth XXXX (slave服务连接master的密码,跟本机redis密码一致)

3.修改10.12.12.192(从)、10.12.12.193(从)配置文件6379.conf

cd /etc/redis/

        vi 6379.conf

        搜索以下蓝色字体属性并修改:

        bind 0.0.0.0 (表示允许所有远程访问)

        protected-mode no   (关闭保护模式,可以外部访问)

        masterauth XXXX  (slave服务连接master的密码,跟本机redis密码一致)

        slaveof主redis服务器ip 主redis端口)

        注意:5.0以上版本 slaveof 属性关键字为 replicaof

4.重启10.12.12.192(从)、10.12.12.193(从)的redis

ps -ef | grep redis

        先找到对应$pid,再进行kill $pid

        cd /usr/local/bin

        ./redis-server /etc/redis/6379.conf

5. 10.12.12.191(主)查看redis主从信息

        先登录

        cd /usr/local/bin

        ./redis-cli -h 127.0.0.1 -p 6379 -a Cmcc@123

        info replication

        如下截图,显示有两个slave已经连接上

        

redis哨兵下载 redis哨兵部署_redis_02

 6.测试验证

       登录10.12.12.191(主)、10.12.12.192(从)

        cd /usr/local/bin

        ./redis-cli -h 127.0.0.1 -p 6379 -a XXXX(你的密码)

        在10.12.12.191(主)上set值,在10.12.12.192(从)上get键

        

redis哨兵下载 redis哨兵部署_数据库_03

        

redis哨兵下载 redis哨兵部署_redis哨兵下载_04

 

三、哨兵模式配置

1.将10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)三台机器目录/usr/local/redis-4.0.5下的sentinel.conf文件内容都修改为以下:

# 端口
port 26379

# 保护模式关闭,这样其他服务起就可以访问此台redis
protected-mode no

# 哨兵模式是否后台启动,默认no,改为yes
daemonize yes

pidfile /var/run/redis-sentinel.pid

# log日志保存位置
logfile /usr/local/redis-4.0.5/sentinel/redis-sentinel.log

# 工作目录
dir /usr/local/redis-4.0.5/sentinel

# master主机ip地址
sentinel monitor mymaster 10.12.12.191 6379 2

# master中redis的密码
sentinel auth-pass mymaster XXXX

# 哨兵从master节点宕机后,等待多少时间(毫秒),认定master不可用。默认30s
sentinel down-after-milliseconds mymaster 30000

# 当替换主节点后,剩余从节点重新和新master做同步的并行数量,默认为 1
sentinel parallel-syncs mymaster 1

# 主备切换的时间,若在3分钟内没有切换成功,换另一个从节点切换
sentinel failover-timeout mymaster 180000

 2.三台机器都执行以下,创建目录

cd /usr/local/redis-4.0.5

        mkdir sentinel

3.分别在10.12.12.191(主)、10.12.12.192(从)、10.12.12.193(从)三台机器中执行以下命令,启动哨兵

cd /usr/local/bin/

        ./redis-sentinel /usr/local/redis-4.0.5/sentinel.conf

4.查看10.12.12.192(从)、10.12.12.193(从)的执行日志

cd /usr/local/redis-4.0.5/sentinel/

        tail -100f redis-sentinel.log

        

redis哨兵下载 redis哨兵部署_redis_05

5.测试验证

        三台机器先登录

        cd /usr/local/bin

        ./redis-cli -h 127.0.0.1 -p 6379 -a XXXX(你的密码)

        info replication

        然后停止10.12.12.191(主)的redis

         ps -ef | grep redis

        先找到对应$pid,再进行kill $pid

        等待30秒再查看10.12.12.192、10.12.12.193的主从信息:

        

redis哨兵下载 redis哨兵部署_缓存_06

         

redis哨兵下载 redis哨兵部署_redis哨兵下载_07

        可以看到192的主节点信息变为了193,193节点由从变为了主。

        重启191节点

        cd /usr/local/bin

        ./redis-server /etc/redis/6379.conf

        查看主从信息

        info replication

        

redis哨兵下载 redis哨兵部署_配置文件_08

         可以看到重启后的191变为了从机,主机为193。