Redis集群_redis

Redis集群_redis_02

Redis集群_vim_03

Redis集群_redis_04

Redis集群_redis_05

Redis集群_vim_06

Redis集群_redis_07

Redis集群_redis_08

Redis集群_端口号_09

Redis集群_vim_10

Redis集群_vim_11

Redis集群_redis_12

Redis集群_redis_13

Redis集群_redis_14

Redis集群_redis_15

Redis集群_redis_16

Redis集群_redis_17

Redis集群_redis_18

Redis集群_redis_19

1.实验环境:

使用任意一台redis 主机 

2.部署高可用

1)搭建环境

[root@server2 redis]# /etc/init.d/redis_6379 stop

cd /usr/local/ mkdir cluster ##建立集群目录

[root@server2 local]# cd cluster/

[root@server2 cluster]# pwd

/usr/local/cluster

[root@server2 cluster]# mkdir 700{1..6}

[root@server2 cluster]# ll

total 24

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7001

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7002

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7003

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7004

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7005

drwxr-xr-x 2 root root 4096 Oct  9 11:02 7006

[root@server2 cluster]# cd 7001/

[root@server2 7001]# vim redis.conf

[root@server2 ~]# cat /usr/local/cluster/7001/redis.conf

port 7001

cluster-enabled yes        #打开集群设备

cluster-config-file nodes.conf

cluster-node-timeout 5000     #延时时间

appendonly yes

daemonize yes

pidfile /usr/local/cluster/7001/redis.pid ##pid文件存放目录

logfile /usr/local/cluster/7001/redis.log ##日志存放目录

[root@server2 7001]# redis-server redis.conf          ###打开集群服务

[root@server2 cluster]# cp 7001/redis.conf 7002/

[root@server2 cluster]# cp 7001/redis.conf 7003/

[root@server2 cluster]# cp 7001/redis.conf 7004/

[root@server2 cluster]# cp 7001/redis.conf 7005/

[root@server2 cluster]# cp 7001/redis.conf 7006/

[root@server2 cluster]# cd 7002/

[root@server2 7002]# vim redis.conf  ###将文件中的端口号改为7002和存放目录的更改

redis-server redis.conf ###打开集群的redis

cd ..

cd 7003/ vim redis.conf ###将文件中的端口号改为7003和存放目录的更改

redis-server redis.conf ###打开集群的redis

cd ..

cd 7004/ vim redis.conf ###将文件中的端口号改为7004和存放目录的更改

redis-server redis.conf ###打开集群的redis

cd ..

cd 7005/

vim redis.conf ###将文件中的端口号改为7005和存放目录的更改

redis-server redis.conf ###打开集群的redis


cd ..

cd 7006/ vim redis.conf ###将文件中的端口号改为7006和存放目录的更改

redis-server redis.conf ###打开集群的redis

ps ax ##查看进程是否都打开了

netstat -antlp ##查看端口号是否开启


[root@server2 ~]# cd redis-4.0.1

[root@server2 redis-4.0.1]# cd src/

[root@server2 src]# cp redis-trib.rb /usr/local/bin/

[root@server2 src]# yum install -y ruby

[root@server2 ~]# yum install -y rubygems-1.3.7-5.el6.noarch.rpm

[root@server2 ~]# rpm -Uvh ruby-2.2.3-1.el6.x86_64.rpm

[root@server2 ~]# yum install -y  ruby-2.2.3-1.el6.x86_64.rpm libyaml-0.1.3-4.el6_6.x86_64.rpm

[root@server2 ~]# gem install --local redis-4.0.1.gem

2)创建集群


[root@server2 ~]# redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006


[root@server2 ~]# redis-cli -c -p 7001

127.0.0.1:7001> set name linux

-> Redirected to slot [5798] located at 127.0.0.1:7002

OK

127.0.0.1:7002>


[root@server2 ~]# redis-cli -c -p 7006

127.0.0.1:7006> set name kb

-> Redirected to slot [5798] located at 127.0.0.1:7002

OK

127.0.0.1:7002> get name

"kb"

127.0.0.1:7002>


redis-cli -c -p 7001

登录,set name linux 写入内容,会提示写入内容传到2上

redis-cli -c -p 7002


输入info,发现2是master,他的slave是6


3)测试


停掉master 2


[root@server2 ~]# redis-cli -c -p 7002

127.0.0.1:7002> SHUTDOWN

not connected>

redis-trib.rb check 127.0.0.1:7001 ##查看集群的状态


可以查看之前的内容


[root@server2 ~]# redis-cli -c -p 7001

127.0.0.1:7001> get name

-> Redirected to slot [5798] located at 127.0.0.1:7005

"kb"

127.0.0.1:7005>


再关掉一个master


[root@server2 ~]# redis-cli -c -p 7005

127.0.0.1:7005> SHUTDOWN

not connected>


查看信息


关闭掉两个master后,集群的功能会破坏

[root@server2 ~]# redis-cli -c -p 7001

127.0.0.1:7001> get name

(error) CLUSTERDOWN The cluster is down

127.0.0.1:7001>


4)恢复关闭的两个节点


[root@server2 ~]# cd /usr/local/cluster/

[root@server2 cluster]# ls

7001  7002  7003  7004  7005  7006

[root@server2 cluster]# cd 7002

[root@server2 7002]# redis-server redis.conf

1292:C 09 Oct 11:40:46.513 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

1292:C 09 Oct 11:40:46.513 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1292, just started

1292:C 09 Oct 11:40:46.513 # Configuration loaded

[root@server2 7002]# cd ..

[root@server2 cluster]# cd 7005

[root@server2 7005]# redis-server redis.conf

1298:C 09 Oct 11:41:15.609 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo

1298:C 09 Oct 11:41:15.609 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1298, just started

1298:C 09 Oct 11:41:15.609 # Configuration loaded




高可用搭建成功