redis(二)——分布式:redis5.0.5三主三从搭建(包括创建集群、启动脚本)

简述

  • Redis3.0 开始支持集群,在每个 Master 上存放着各不相同的数据,即分布式存储的思想。 集群中的每个节点都需要知道集群中自己之外的其它节点
  • 三主三从结构指三个主Master的Redis服务和从属于Master的Slave的Redis服务,主服务主要负责数据写入操作,从服务负责数据读取操作,一共需要6台服务器
  • 整个 Redis 集群将集群存储空间分为 16384 个 Slot(槽),将 16384 个 Slot 分散到集群中的每个服务器节点
  • 在集群存储数据的时候,首先进行 CRC16(key) % 16384=0…16383计算 , 然后根据运算结果将 key 对应的执行保存到对应的 Slot槽中,比如有三个Redis服务器,则0…16383会分布在三个Redis服务器节点中,这是一种分布式存储的体现。官网说明:
    Node A contains hash slots from 0 to 5500.
    Node B contains hash slots from 5501 to 11000.
    Node C contains hash slots from 11001 to 16383.
  • 客户端不需要连接集群所有的节点,连接集群中任何一个可用的节点即可,redis-cluster把所有的物理节点映射到[0~16383]slot 上,cluster 负责维护 node<->slot<->value

环境说明

  • liunx服务器
  • CentOs7
  • redis5.0.5
  • 本次示例采用在一台服务器上创建6个节点构建集群,实际环境可将6个节点随意分配至不同服务器

安装步骤

安装redis

1、安装gcc

yum -y install gcc

2、下载redis

打开redis官网https://redis.io/下载最新版http://download.redis.io/releases/redis-5.0.5.tar.gz

3、编译安装Redis

#解压
tar -zxvf /usr/local/packages/redis-5.0.5.tar.gz -C 
/usr/local/redis
#进入解压文件目录
cd /usr/local/redis
#安装到指定目录/usr/local/redis/redis-cluster install
make && make PREFIX=/usr/local/redis/redis-cluster install
#或者安装在当前目录
make && make install
#查看redis-server的版本
cd /usr/local/redis/redis-cluster
./bin/redis-server --version
#查看redis-cli的版本
./bin/redis-cli --version

创建集群

1、在redis-cluster目录下创建6个目录6001-6006

mkdir 6001
...

2、复制redis.conf 至 6001目录下

cp /usr/local/redis/redis-5.0.5/redis.conf /usr/local/redis/redis-cluster/6001

3、修改6001下配置文件

bind 0.0.0.0        //开启网络,保证其他网络可以访问该机子
port 6001           //每个节点的端口号
daemonize yes       //守护线程 ,后台运行redis
pidfile /var/run/redis_6001.pid
appendonly yes      //aof日志每一个操作都记录模式
cluster-enabled yes //开启集群模式
cluster-config-file nodes_6001.conf  //集群节点的配置
cluster-node-timeout 5000     //节点请求超时时间

4、复制6001下文件至6002-6006文件夹下,并修改各个节点的配置文件port、pidfile、cluster-config-file

cp /usr/local/redis/redis-cluster/6001/redis.conf /usr/local/redis/redis-cluster/6002/redis.conf
...

5、启动6个节点

cd /usr/local/redis/redis-cluster
./bin/redis-server ./6001/redis.conf
./bin/redis-server ./6002/redis.conf
./bin/redis-server ./6003/redis.conf
./bin/redis-server ./6004/redis.conf
./bin/redis-server ./6005/redis.conf
./bin/redis-server ./6006/redis.conf

6、构建集群
redis5.0集群创建方式改为了C编写的redis-cli创建,不用再安装麻烦的ruby了
如果配置了密码则加上密码信息 -a 密码

cd /usr/local/redis/redis-cluster
./bin/redis-cli -a 密码 --cluster create 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 127.0.0.1:6006 --cluster-replicas 1

7、进入redis客户端
连接任意一个客户端即可,注意这里可能会redirected进入到其它server

扫描二维码关注公众号,回复: 15193195 查看本文章
#提示:-a访问服务端密码,-c表示集群模式,指定ip地址和端口号
./bin/redis-cli -a 密码 -c -h 127.0.0.1 -p 6001

8、验证集群

127.0.0.1:6001> cluster info
127.0.0.1:6001> cluster nodes

9、数据验证

127.0.0.1:6001> set key value
-> Redirected to slot [12539] located at 127.0.0.1:6003
127.0.0.1:6003> get key
"value"
127.0.0.1:6003> del key
(integer) 1
127.0.0.1:6003> get key
(nil)

10、退出客户端

127.0.0.1:6003> exit

11、关闭集群需要逐个进行关闭

./bin/redis-cli -a 密码 -c -h 127.0.0.1 -p 6001 shutdown

总结

redis分布式集群至此已搭建完成

猜你喜欢

转载自blog.csdn.net/qq_42133100/article/details/102726802