概念
- 由多个redis组成的redis集群
特点
- 每个实例上存储的数据都不同
- 要求每一个节点至少要拥有一个从节点,以防止集群奔溃
- 当主节点坏了的时候,从节点可以补上
redis集群搭建
redis集群至少需要三个节点,又有三个三个从节点,所以,需要六台服务
(1)创建文件夹
mkdir cluster
(2)解压redis到cluster目录下
tar -xvf redis-3.2.9.tar.gz -C ./cluster/
(3)给redis-3.2.9.tar.gz重命名为redis1
[root@leitingyan ~]# cd cluster
[root@leitingyan cluster]# mv redis-3.2.9/ redis1
[root@leitingyan cluster]# ls
redis1
(4) 将redis1复制5份
[root@leitingyan cluster]# cp -r redis1/ redis2
[root@leitingyan cluster]# cp -r redis1/ redis3
[root@leitingyan cluster]# cp -r redis1/ redis4
[root@leitingyan cluster]# cp -r redis1/ redis5
[root@leitingyan cluster]# cp -r redis1/ redis6
[root@leitingyan cluster]# ls
redis1 redis2 redis3 redis4 redis5 redis6
[root@leitingyan cluster]#
修改配置文件
(1)打开配置文件
vim redis1/redis.conf
(2)修改配置文件内容
- 端口号:7111 84行
- 取消IP绑定: #bind 127.0.0.1 61行
- 关闭保护模式: protected-mode no 80行
(3)将redis1文件夹中的配置文件redis.conf赋值到redis2-6中
[root@leitingyan cluster]# cp redis1/redis.conf redis2
cp: overwrite `redis2/redis.conf'? Y
[root@leitingyan cluster]# cp redis1/redis.conf redis3
cp: overwrite `redis3/redis.conf'? Y
[root@leitingyan cluster]# cp redis1/redis.conf redis4
cp: overwrite `redis4/redis.conf'? Y
[root@leitingyan cluster]# cp redis1/redis.conf redis5
cp: overwrite `redis5/redis.conf'? Y
[root@leitingyan cluster]# cp redis1/redis.conf redis6
cp: overwrite `redis6/redis.conf'? Y
(4) 然后再分别改一下redis2-redis6目录下的配置文件redis.conf中的端口号
[root@leitingyan cluster]# vim redis2/redis.conf
[root@leitingyan cluster]# vim redis3/redis.conf
[root@leitingyan cluster]# vim redis4/redis.conf
[root@leitingyan cluster]# vim redis5/redis.conf
[root@leitingyan cluster]# vim redis6/redis.conf
[root@leitingyan cluster]#
创建启动文件
- 安装ruby
yum -y install ruby
yun -y install rubygems
- 往服务器上传文件:redis-3.2.2.gem
- 然后执行语句
gem install redis-3.2.2.gem
- 修改6个实例,后台运行redis.conf的128行no改成yes
[root@leitingyan cluster]# vim redis2/redis.conf
[root@leitingyan cluster]# vim redis3/redis.conf
[root@leitingyan cluster]# vim redis4/redis.conf
[root@leitingyan cluster]# vim redis5/redis.conf
[root@leitingyan cluster]# vim redis6/redis.conf
[root@leitingyan cluster]#
- 创建start-all.sh
- 在该文件中编辑以下内容
cd redis1
redis-server redis.conf
cd ..
cd redis2
redis-server redis.conf
cd ..
cd redis3
redis-server redis.conf
cd ..
cd redis4
redis-server redis.conf
cd ..
cd redis5
redis-server redis.conf
cd ..
cd redis6
redis-server redis.conf
cd ..
./redis-trib.rb create --replicas 1 192.168.222.128:7111 192.168.222.128:7112 192.168.222.128:7113 192.168.222.128:7114 192.168.222.128:7115 192.168.222.128:7116
- 修改6个实例,后台运行redis.conf的721,去掉注释
- 启动服务IQ
sh start-all.sh
- 查看进程
ps -ef | grep redis
- 启动后的样子
- 创建一个关闭的文件
touch shutdown-all.sh
- 编辑关闭服务器的文件,
vim shutdown-all.sh
-----------------------------------------------------------
redis-cli -p 7111 shutdown
redis-cli -p 7112 shutdown
redis-cli -p 7113 shutdown
redis-cli -p 7114 shutdown
redis-cli -p 7115 shutdown
redis-cli -p 7116 shutdown
rm -f redis*/dump.rdb
rm -f redis*/appendonly.aof
rm -f redis*/nodes.conf
- 关闭服务
sh shutdown-all.sh