redis集群环境的搭建

以三个节点的集群为例
每个节点有一主一备,所以需要六台虚拟机
因为环境有限 所以搭建一个伪分布式的集群 使用六个redis实例来模拟
搭建集群所需要的环境
需要使用到官方提供的ruby脚本。
安装ruby :
[root@localhost /]# yum install ruby
[root@localhost /]# yum install rubygems
redis集群管理工具redis-trib_rb
[root@localhost ~]# ls
nginx-1.8.0 redis-3.0.0 redis-3.0.0.tar.gz
[root@localhost ~]# cd redis-3.0.0
[root@localhost redis-3.0.0]# cd src
[root@localhost src]# ll *.rb
-rwxrwxr-x. 1 root root 48141 Apr 1 2015 redis-trib.rb
运行redis-trib_rb也需要依赖ruby包 :redis-3.0.0.gem
所以要拷贝redis-3.0.0.gem 到服务器
然后安装redis-3.0.0.gem 包:
[root@localhost ~]# ls
nginx-1.8.0 redis-3.0.0 redis-3.0.0.gem redis-3.0.0.tar.gz
[root@localhost ~]# gem install redis-3.0.0.gem
Successfully installed redis-3.0.0
1 gem installed
Installing ri documentation for redis-3.0.0…
Installing RDoc documentation for redis-3.0.0…

集群的搭建
刚才说的需要六个redis实例
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ll
total 44
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
drwxr-xr-x. 2 root root 4096 Sep 23 2011 etc
drwxr-xr-x. 2 root root 4096 Sep 23 2011 games
drwxr-xr-x. 2 root root 4096 Sep 23 2011 include
drwxr-xr-x. 2 root root 4096 Sep 23 2011 lib
drwxr-xr-x. 2 root root 4096 Sep 23 2011 libexec
drwxr-xr-x. 5 root root 4096 Jul 29 2015 nginx
drwxr-xr-x. 3 root root 4096 Dec 21 18:19 redis
drwxr-xr-x. 2 root root 4096 Sep 23 2011 sbin
drwxr-xr-x. 5 root root 4096 Jun 9 2015 share
drwxr-xr-x. 2 root root 4096 Sep 23 2011 src
新建一个目录用来存放六个实例
[root@localhost local]# mkdir redis-cluster
[root@localhost local]# ll
total 48
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
drwxr-xr-x. 2 root root 4096 Sep 23 2011 etc
drwxr-xr-x. 2 root root 4096 Sep 23 2011 games
drwxr-xr-x. 2 root root 4096 Sep 23 2011 include
drwxr-xr-x. 2 root root 4096 Sep 23 2011 lib
drwxr-xr-x. 2 root root 4096 Sep 23 2011 libexec
drwxr-xr-x. 5 root root 4096 Jul 29 2015 nginx
drwxr-xr-x. 3 root root 4096 Dec 21 18:19 redis
drwxr-xr-x. 2 root root 4096 Dec 22 00:26 redis-cluster
drwxr-xr-x. 2 root root 4096 Sep 23 2011 sbin
drwxr-xr-x. 5 root root 4096 Jun 9 2015 share
drwxr-xr-x. 2 root root 4096 Sep 23 2011 src
[root@localhost local]# cd redis
[root@localhost redis]# ll
total 4
drwxr-xr-x. 2 root root 4096 Dec 21 21:34 bin

拷贝redis的bin目录到 /redis-cluster/redis01:
[root@localhost redis]# cp -r bin ../redis-cluster/redis01
[root@localhost redis]# cd ../redis-cluster/
[root@localhost redis-cluster]# ll
total 4
drwxr-xr-x. 2 root root 4096 Dec 22 00:28 redis01

进入redis01目录:
[root@localhost redis-cluster]# cd redis01/
[root@localhost redis01]# ll
total 13896
-rw-r–r–. 1 root root 18 Dec 22 00:28 dump.rdb
-rwxr-xr-x. 1 root root 4167902 Dec 22 00:28 redis-benchmark
-rwxr-xr-x. 1 root root 16459 Dec 22 00:28 redis-check-aof
-rwxr-xr-x. 1 root root 37691 Dec 22 00:28 redis-check-dump
-rwxr-xr-x. 1 root root 4256668 Dec 22 00:28 redis-cli
-rw-r–r–. 1 root root 41404 Dec 22 00:28 redis.conf
lrwxrwxrwx. 1 root root 12 Dec 22 00:28 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5686505 Dec 22 00:28 redis-server

删掉dump.rdb文件
[root@localhost redis01]# rm -f *.rdb
[root@localhost redis01]# ll
total 13892
-rwxr-xr-x. 1 root root 4167902 Dec 22 00:28 redis-benchmark
-rwxr-xr-x. 1 root root 16459 Dec 22 00:28 redis-check-aof
-rwxr-xr-x. 1 root root 37691 Dec 22 00:28 redis-check-dump
-rwxr-xr-x. 1 root root 4256668 Dec 22 00:28 redis-cli
-rw-r–r–. 1 root root 41404 Dec 22 00:28 redis.conf
lrwxrwxrwx. 1 root root 12 Dec 22 00:28 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 5686505 Dec 22 00:28 redis-server

修改redis.conf
[root@localhost redis01]# vi redis.conf
修改 daemonize yes
修改端口号:port 7001
把cluster-enabled yes 注释放开。默认是注释了
[root@localhost redis01]# cd ..
[root@localhost redis-cluster]# cp -r redis01/ redis02
[root@localhost redis-cluster]# cp -r redis01/ redis03
[root@localhost redis-cluster]# cp -r redis01/ redis04
[root@localhost redis-cluster]# cp -r redis01/ redis05
[root@localhost redis-cluster]# cp -r redis01/ redis06
然后再依次修改各个目录下的redis.conf 里的端口号 从7002-7006,保存。

拷贝redis-trib.rb到/usr/local/redis-cluster/目录下:
[root@localhost local]# cd ..
[root@localhost usr]# cd ..
[root@localhost /]# cd root
[root@localhost ~]# ls
nginx-1.8.0 redis-3.0.0 redis-3.0.0.gem redis-3.0.0.tar.gz
[root@localhost ~]# cd redis-3.0.0/src
[root@localhost src]# cp *.rb /usr/local/redis-cluster/
[root@localhost src]# cd /usr/local/redis-cluster/
[root@localhost redis-cluster]# ll
total 72
drwxr-xr-x. 2 root root 4096 Dec 22 00:55 redis01
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis02
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis03
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis04
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis05
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis06
-rwxr-xr-x. 1 root root 48141 Dec 22 01:06 redis-trib.rb
启动6个redis实例:
使用脚本启动
vi startall.sh
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

保存后:
[root@localhost redis-cluster]# chmod +x startall.sh
[root@localhost redis-cluster]# ll
total 76
drwxr-xr-x. 2 root root 4096 Dec 22 00:55 redis01
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis02
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis03
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis04
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis05
drwxr-xr-x. 2 root root 4096 Dec 22 00:56 redis06
-rwxr-xr-x. 1 root root 48141 Dec 22 01:06 redis-trib.rb
-rwxr-xr-x. 1 root root 259 Dec 22 01:22 startall.sh

启动服务
[root@localhost redis-cluster]# ./startall.sh

查看运行状态:
[root@localhost redis-cluster]# ps aux|grep redis

root 11374 0.1 0.1 33936 1728 ? Ssl Dec21 0:24 ./redis-server *:6379
root 11598 0.1 0.1 33936 1928 ? Ssl 01:23 0:01 ./redis-server *:7001 [cluster]
root 11628 0.2 0.1 33936 1972 ? Ssl 01:40 0:00 ./redis-server *:7002 [cluster]
root 11630 0.2 0.1 33936 1972 ? Ssl 01:40 0:00 ./redis-server *:7003 [cluster]
root 11634 0.2 0.1 33936 1972 ? Ssl 01:40 0:00 ./redis-server *:7004 [cluster]
root 11638 0.1 0.1 33936 1976 ? Ssl 01:40 0:00 ./redis-server *:7005 [cluster]
root 11644 0.1 0.1 33936 1972 ? Ssl 01:40 0:00 ./redis-server *:7006 [cluster]
root 11648 0.0 0.0 4360 736 pts/0 S+ 01:40 0:00 grep redis

看到这个表示启动成功。

创建集群: 执行这个命令. 当然ip地址要改成自己的ip
./redis-trib.rb create --replicas 1 192.168.101.3:7001 192.168.101.3:7002 192.168.101.3:7003 192.168.101.3:7004 192.168.101.3:7005 192.168.101.3:7006

[root@localhost redis-cluster]# ./redis-trib.rb create –replicas 1 192.168.0.108:7001 192.168.0.108:7002 192.168.0.108:7003 192.168.0.108:7004 192.168.0.108:7005 192.168.0.108:7006
>>> Creating cluster
Connecting to node 192.168.0.108:7001: OK
Connecting to node 192.168.0.108:7002: OK
Connecting to node 192.168.0.108:7003: OK
Connecting to node 192.168.0.108:7004: OK
Connecting to node 192.168.0.108:7005: OK
Connecting to node 192.168.0.108:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.0.108:7001
192.168.0.108:7002
192.168.0.108:7003
Adding replica 192.168.0.108:7004 to 192.168.0.108:7001
Adding replica 192.168.0.108:7005 to 192.168.0.108:7002
Adding replica 192.168.0.108:7006 to 192.168.0.108:7003
M: 6afa7f18bca098b391da2dd65b6afebfd35868e1 192.168.0.108:7001
slots:0-5460 (5461 slots) master
M: f8eb714a54d9d99a9b53811724ede0df992eaa7b 192.168.0.108:7002
slots:5461-10922 (5462 slots) master
M: f993dce0c3a3af47bb7233623530e976e7b9c333 192.168.0.108:7003
slots:10923-16383 (5461 slots) master
S: b25fd9f0080f35e8986a848b4c5cb489ddc7d90c 192.168.0.108:7004
replicates 6afa7f18bca098b391da2dd65b6afebfd35868e1
S: 3cb0c222061aff7e706b5a233364132ffea24cbd 192.168.0.108:7005
replicates f8eb714a54d9d99a9b53811724ede0df992eaa7b
S: e389ce11179058a8433ee1e7df78c636d74b66ce 192.168.0.108:7006
replicates f993dce0c3a3af47bb7233623530e976e7b9c333
Can I set the above configuration? (type ‘yes’ to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join…
>>> Performing Cluster Check (using node192.168.0.108:7001)
M: 6afa7f18bca098b391da2dd65b6afebfd35868e1 192.168.0.108:7001
slots:0-5460 (5461 slots) master
M: f8eb714a54d9d99a9b53811724ede0df992eaa7b 192.168.0.108:7002
slots:5461-10922 (5462 slots) master
M: f993dce0c3a3af47bb7233623530e976e7b9c333 192.168.0.108:7003
slots:10923-16383 (5461 slots) master
M: b25fd9f0080f35e8986a848b4c5cb489ddc7d90c 192.168.0.108:7004
slots: (0 slots) master
replicates 6afa7f18bca098b391da2dd65b6afebfd35868e1
M: 3cb0c222061aff7e706b5a233364132ffea24cbd 192.168.0.108:7005
slots: (0 slots) master
replicates f8eb714a54d9d99a9b53811724ede0df992eaa7b
M: e389ce11179058a8433ee1e7df78c636d74b66ce 192.168.0.108:7006
slots: (0 slots) master
replicates f993dce0c3a3af47bb7233623530e976e7b9c333
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost redis-cluster]#
看到上面信息表示搭建成功。

测试集群
[root@localhost redis-cluster]# redis01/redis-cli -h 192.168.0.108 -p 7002 -c
192.168.0.108:7002> set a 100
-> Redirected to slot [15495] located at 192.168.0.108:7003
OK
192.168.0.108:7003>
[root@localhost redis-cluster]#

关闭redis
[root@localhost redis]# bin/redis-cli -p 7001 shutdown

Redis 客户端
redis-cli 系统自带的 使用最多的

图形化客户端
只支持单机版不支持集群

Jedis 客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值