redis主从安装部署
2016-06-23 08:42
585 查看
redis主从部署
一、单机步骤(所以操作都在root下,如果需要根据自己设置权限):1、准备安装包:redis-3.0.7.tar.gz
2、在根目录创建soft文件夹
[root@localhost/]# mkdir soft3、将安装包上传到soft目录下,并进行解压
[root@localhost soft]# tar -xvzf redis-3.0.7.tar.gz4、解压之后进入redis-3.0.7
[root@localhost soft]# cd redis-3.0.75、编译
[root@localhostsoft]# make6、编译完成之后,在src目录下有三个可执行文件redis-server、redis-benchmark、redis-cli以及当前目录下的redis.conf,然后拷贝到一个目录下,先进入到usr目录创建redis目录
[root@localhostusr]# mkdir redis7、拷贝文件,先进入到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.conf9、启动客户端测试
[root@localhostredis]# ./redis-cli127.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。
相关文章推荐
- 浅析Redis复制
- redis安装
- redis配置详解
- spring整合redis
- 使用Jedis操作Redis
- Redis安装
- redis数据类型和应用场景
- redis 持久化与备份策略 【转载】
- redis菜鸟教程
- 解决Redis 报错 NOAUTH Authentication required
- (二)Redis的安装及配置(3)---注册服务与自动启动
- redis搭建与安装2
- windows下安装redis以及测试
- REDIS常用命令
- Tomcat7基于Redis的Session共享
- NoSQL之Redis---连接(connection)
- redis初步接触
- redis-string-统计
- redis-string1
- ubuntu下全自动创建Redis集群脚本