linux下redis集群的搭建

本篇博客将演示还ubuntu下redis集群的搭建。

redis-cluster架构图:

架构细节:

(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.通过投票机制

(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可

(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点

至少3个节点,为了集群的高可用,为每一个节点增加一个备份机。(6台服务器)。

搭建伪分布式集群方案:在一台机器里面运行6个redis实例。端口需要不同(7001-7006)。分布式的搭建也可以参考。

1.先安装ruby:sudo apt-get install ruby, sudo apt-get install rubygems,gem install redis

2.创建目录,创建6个redis实例,每个实例运行在不同的端口(7001-7006)。

 2.1 hl@ubuntu:/usr/local$ sudo  mkdir redis-cluster

 2.2 复制之前搭建好的redis 并改名为redis01:hl@ubuntu:/usr/local$ sudo cp redis redis-cluster/redis01 -r

 2.3进入redis-cluster目录中cd到redis01的bin目录,删除数据文件,包括RDB和AOF文件:

hl@ubuntu:/usr/local$ sudo cd redis-cluster/redis01/bin

hl@ubuntu:/usr/local$ sudo rm -rf *.rdb *.aof

 2.4修改redis.conf如图

vim redis.conf     可以查找cluster功能,直接定位到

注销密码登录

绑定到服务器节点 

 

按ESC    :wq  

保存退出。

2.5创建6个redis实例

  • cd到redis-cluster目录
  • copy六份并分别命名为redis02,redis03,redis04,redis05,redis06

sudo cp -r redis01 redis02
sudo cp -r redis01 redis03 
sudo cp -r redis01 redis04 
sudo cp -r redis01 redis05 
sudo cp -r redis01 redis06 

2.6 cd到每一个实例的bin目录,修改每一个redis实例的端口分别改为7001-7006

sudo vim redis.conf    每个redis实例依次改成7001到7006

3.启动每个redis实例

sudo vim redis-cluster-start-all.sh

添加如下文字到文件中:

cd /usr/local/redis-cluster/redis01/bin

./redis-server redis.conf

 

cd /usr/local/redis-cluster/redis02/bin

./redis-server redis.conf

 

cd /usr/local/redis-cluster/redis03/bin

./redis-server redis.conf

 

cd /usr/local/redis-cluster/redis04/bin

./redis-server redis.conf

 

cd /usr/local/redis-cluster/redis05/bin

./redis-server redis.conf

 

cd /usr/local/redis-cluster/redis06/bin

./redis-server redis.conf

修改文件:redis-cluster-start-all.sh 的权限,让其可执行。

chmod u+x redis-cluster-start-all.sh

4.启动

sudo ./redis-cluster-start-all.sh

5.使用ruby脚本搭建集群。 

到redis安装包的解压目录下(/redis-4.0.11/src),复制redis-trib.rb文件到redis-cluster目录中

6.执行创建

sudo ./redis-trib.rb create --replicas 1 192.168.37.129:7001 192.168.37.129:7002 192.168.37.129:7003 192.168.37.129:7004 192.168.37.129:7005 192.168.37.129:7006

 创建关闭集群的脚本

 

cd /usr/local/redis-cluster/redis01/bin

./redis-cli -p 7001 shutdown

 

cd /usr/local/redis-cluster/redis02/bin

./redis-cli -p 7002 shutdown

 

cd /usr/local/redis-cluster/redis03/bin

./redis-cli -p 7003 shutdown

 

cd /usr/local/redis-cluster/redis04/bin

./redis-cli -p 7004 shutdown

 

cd /usr/local/redis-cluster/redis05/bin

./redis-cli -p 7005 shutdown

 

cd /usr/local/redis-cluster/redis06/bin

./redis-cli -p 7006 shutdown

修改文件:redis-cluster-stop-all.sh 的权限,让其可执行。

chmod u+x redis-cluster-stop-all.sh

猜你喜欢

转载自blog.csdn.net/LiangCJP/article/details/83614928