您的位置:首页 > 数据库 > Redis

redis主从安装部署

2016-06-23 08:42 585 查看

redis主从部署

一、单机步骤(所以操作都在root下,如果需要根据自己设置权限):

1、准备安装包:redis-3.0.7.tar.gz

2、在根目录创建soft文件夹

       [root@localhost/]# mkdir soft

3、将安装包上传到soft目录下,并进行解压

       [root@localhost soft]# tar -xvzf redis-3.0.7.tar.gz

4、解压之后进入redis-3.0.7

       [root@localhost soft]# cd redis-3.0.7

5、编译

        [root@localhostsoft]# make

6、编译完成之后,在src目录下有三个可执行文件redis-server、redis-benchmark、redis-cli以及当前目录下的redis.conf,然后拷贝到一个目录下,先进入到usr目录创建redis目录

              [root@localhostusr]# mkdir redis

7、拷贝文件,先进入到src目录下即/soft/redis-3.0.7/src

              [root@localhostsrc]# cp redis-server /usr/redis/

              [root@localhost src]# cpredis-benchmark /usr/redis/

              [root@localhost src]# cp redis-cli/usr/redis/

              [root@localhost src]# cpredis-sentinel /usr/redis/

进入到/soft/redis-3.0.7目录拷贝redis.conf

              [root@localhostredis-3.0.7]# cp redis.conf /usr/redis/

              [root@localhost redis-3.0.7]# cpsentinel.conf /usr/redis/

8、启动redis服务,进入/usr/redis目录,执行

              [root@localhostredis]# ./redis-server redis.conf

9、启动客户端测试

[root@localhostredis]# ./redis-cli

127.0.0.1:6379>set foo bar

OK

127.0.0.1:6379>get foo

"bar"

二、主从环境搭建,主从都安装单机部署

1、准备机器

192.168.12.128 主

192.168.12.129 从1

192.168.12.131 从1

192.168.12.130 Sentinel(redis sentinel集群监控)

2、安装配置

安装步骤参照“单机步骤”:

但是从的配置文件需要进行修改

修改内容如下:添加如下配置

slaveof192.168.12.128 6379

 

Sentinel配置,修改sentinel.conf

sentinelmonitor mymaster 192.168.12.129 6379 1

sentineldown-after-milliseconds mymaster 5000

sentinelfailover-timeout mymaster 900000

sentinelparallel-syncs mymaster 2

3、启动服务

启动主(192.168.12.128):

[root@localhost redis]# ./redis-server redis.conf

启动从(192.168.12.129):

[root@localhostredis]# ./redis-server redis.conf

启动从(192.168.12.131):

[root@localhostredis]# ./redis-server redis.conf

启动sentinel(192.168.12.130):

[root@localhostredis]# ./redis-server sentinel.conf --sentinel

 

4、查看redis相关信息

查看主redis的信息,进入/usr/redis目录(192.168.12.128):

[root@localhostredis]# ./redis-cli -h 192.168.12.128 -p 6379 info Replication

# Replication

role:master

connected_slaves:1

slave0:ip=192.168.12.129,port=6379,state=online,offset=3813,lag=1

master_repl_offset:3813

repl_backlog_active:1

repl_backlog_size:1048576

repl_backlog_first_byte_offset:2

repl_backlog_histlen:3812

 

查看从redis的信息,进入/usr/redis目录(192.168.12.129)

[root@localhostredis]# ./redis-cli -h 192.168.12.129 -p 6379 info Replication

# Replication

role:slave

master_host:192.168.12.128

master_port:6379

master_link_status:up

master_last_io_seconds_ago:8

master_sync_in_progress:0

slave_repl_offset:2371

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

 

查看从redis的信息,进入/usr/redis目录(192.168.12.131)

[root@localhostredis]# ./redis-cli -h 192.168.12.131 -p 6379 info Replication

# Replication

role:slave

master_host:192.168.12.128

master_port:6379

master_link_status:up

master_last_io_seconds_ago:0

master_sync_in_progress:0

slave_repl_offset:189640

slave_priority:100

slave_read_only:1

connected_slaves:0

master_repl_offset:0

repl_backlog_active:0

repl_backlog_size:1048576

repl_backlog_first_byte_offset:0

repl_backlog_histlen:0

 

查看从redis的信息,进入/usr/redis目录(192.168.12.130)

[root@localhostredis]# ./redis-cli -h 192.168.12.130 -p 26379 info Sentinel

# Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

master0:name=mymaster,status=ok,address=192.168.12.128:6379,slaves=2,sentinels=1

5、故障演示

当主的redis服务器宕机,会发生什么情况?

启动sentinel时候,sentinel打印日志如下:

+slaveslave 192.168.12.131:6379 192.168.12.131 6379 @ mymaster 192.168.12.128 6379

查看sentinel信息,执行

[root@localhostredis]# ./redis-cli -h 192.168.12.130 -p 26379 info Sentinel

信息如下:

# Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

master0:name=mymaster,status=ok,address=192.168.12.128:6379,slaves=2,sentinels=1

 

执行以下命令使主的redis服务停止。

[root@localhostredis]# ./redis-cli -h 192.168.12.128 -p 6379 shutdown

查看sentinel信息如下:

[4404] 13 Jun 23:34:07.041 # +sdown master mymaster192.168.12.128 6379

[4404] 13 Jun 23:34:07.041 # +odown master mymaster192.168.12.128 6379 #quorum 1/1

[4404] 13 Jun 23:34:07.041 # +new-epoch 3

[4404] 13 Jun 23:34:07.041 # +try-failover mastermymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.041 # +vote-for-leader 334fb2136e1cc297d0c1225d0e71ac132cfe087e3

[4404] 13 Jun 23:34:07.041 # +elected-leader mastermymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.041 #+failover-state-select-slave master mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.107 # +selected-slave slave192.168.12.131:6379 192.168.12.131 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.107 *+failover-state-send-slaveof-noone slave 192.168.12.131:6379 192.168.12.1316379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.200 * +failover-state-wait-promotionslave 192.168.12.131:6379 192.168.12.131 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.376 # +promoted-slave slave192.168.12.131:6379 192.168.12.131 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.376 #+failover-state-reconf-slaves master mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:07.449 * +slave-reconf-sent slave192.168.12.129:6379 192.168.12.129 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:08.435 * +slave-reconf-inprog slave192.168.12.129:6379 192.168.12.129 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:08.435 * +slave-reconf-done slave192.168.12.129:6379 192.168.12.129 6379 @ mymaster 192.168.12.128 6379

[4404] 13 Jun 23:34:08.497 # +failover-end mastermymaster 192.168.12.128 6379

[4404] 13Jun 23:34:08.497 # +switch-master mymaster 192.168.12.128 6379 192.168.12.1316379

[4404] 13 Jun 23:34:08.501 * +slave slave192.168.12.129:6379 192.168.12.129 6379 @ mymaster 192.168.12.131 6379

[4404] 13 Jun 23:34:08.504 * +slave slave192.168.12.128:6379 192.168.12.128 6379 @ mymaster 192.168.12.131 6379

[4404] 13 Jun 23:34:13.558 # +sdown slave192.168.12.128:6379 192.168.12.128 6379 @ mymaster 192.168.12.131 6379   

查看主的redis服务切换到192.168.12.131的服务器上。

通过以下命令查看sentinel的信息:

[root@localhostredis]# ./redis-cli -h 192.168.12.130 -p 26379 info Sentinel

信息如下:

# Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

master0:name=mymaster,status=ok,address=192.168.12.131:6379,slaves=2,sentinels=1

 

重新启动192.168.12.128服务,sentinel的信息如下:

[4404] 13 Jun 23:40:00.715 # -sdown slave192.168.12.128:6379 192.168.12.128 6379 @ mymaster 192.168.12.131 6379

[4404] 13 Jun 23:40:10.590 * +convert-to-slave slave192.168.12.128:6379 192.168.12.128 6379 @ mymaster 192.168.12.131 6379

注意:redis sentinel 集群服务,会把上次主redis重新加入服务中,但是他再以不是主的redis了,变成从的reids。


 

 

 

 

 

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: