Linux Cluster Setup

Reprinted @ https://www.cnblogs.com/cmxbky1314/p/11748426.html

 

 

1

For us easily build a cluster, we need to create a directory, which stood six servers (a cluster of at least six servers). as follows:

                                 

 

   We own the establishment of a directory called redis-cluster of (shown in blue box), this directory also established six subdirectories, used to store Redis server.

  2. Then cd to our original redis service catalog, clustered configuration changes

  ① cluster-enabled yes open cluster support

  Information ② cluster-config-file nodes.conf record of each node, the file saved to a file nodes.conf

  ③ bind 0.0.0.0 open ip access

      

           

  3. Then we have to build a good Redis service directory, you will have to set a good redis.conf copied to the directory we have established a good six, respectively. as follows:

          

       Note: redis_conf is my redis service daemon startup configuration directory, which stood to start the process of redis.conf configuration file, the relative path to our catalog established above the back.

  4. After a good six replicate server, go to modify the port configuration file for each service, where we were assigned to the port 8001--8006 six server. as follows,

    

     Note: in order to then modify the remaining five, to ensure that port services can vary.

  5. Next, the configuration of each service start redis

1 redis-server 8001/redis.conf
2 redis-server 8002/redis.conf
3 redis-server 8003/redis.conf
4 redis-server 8004/redis.conf
5 redis-server 8005/redis.conf
6 redis-server 8006/redis.conf

  FIG effect after opening, as follows

  

   6. Create a cluster Redis

    grammar:

      redis-cli --cluster create 192.168.142.131:9001 192.168.142.131:9002 192.168.142.131:9003 192.168.142.131:9004 192.168.142.131:9005 192.168.142.131:9006  --cluster-replicas 1

    解释: redis 客户端  集群  创建  。。。上面创建六个redis服务器的端口。。。 集群 一比一主从配置

  然后我们输入  yes   ,Redis 就会创建好集群,结果如下。

  

   7.集群说明

         --cluster-replicas 1 表示主从复制比例为 1:1,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务器,以及 slot 的大小,

    因为在 Redis 集群中有且仅有 16384 个 slot ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。

 

    查看集群信息:192.168.134.124:7003> cluster info(查看集群信息)或cluster nodes(查看节点列表)

  集群搭建完毕,6个节点,3主,3从,只有主节点才拥有槽,并对外提供读写数据服务。注意至少有3个主节点才可以搭建集群,为每个主至少分配1个从,所以至少需要6个redis节点才可以形成集群。

  8.槽

  - redis cluster 默认分配了 16384 个slot,所有的主redis服务器,大概均分所有的槽
  - 存/取值时 ,redis会根据key,计算一个介于 0 – 16383之间的数字,此数字即为当前数据的槽位置,通过槽位置,决定哪个redis主服务器来负责本次访问

 

  Redis 集群会把数据存在一个master节点,然后在这个master和其对应的slave之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的master节点获取数据。

  只有当一个master 挂掉之后,才会启动一个对应的slave节点,充当master。

  需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。

  9.集群的特性或者优点

   集群搭建后:

  - 性能的进一步提升,可以在单位时间内,吞吐更多的请求
  - 数据的存储节点,具有高可用性(集群有好的容错机制)
  集群容错:

  - 所有槽可以被覆盖时,则集群正常运行
  - 如果16384个槽,不能被所有主机完整覆盖了,则集群宕机

四、集群中节点的操作

  1.删除从节点

         

    测试效果如下:

  2.添加从节点

  redis-cli --cluster add-node 192.168.134.124:7000 192.168.134.124:7001 --cluster-slave --cluster-master-id 4032891b648e76b2975e5bc701e9c8a52ad6f3dd

  # 注意:加新节点之前 要清楚新节点中数据
  # add-node: 后面的分别跟着新加入的slave和集群中任意一个节点
  # cluster-slave:表示加入的是slave节点
  # --cluster-master-id:表示slave对应的master的node ID

  

 3.删除主节点

  需要先进行重新分片:

  redis-cli --cluster reshard 192.168.142.131:9001   #后面的ip和端口 起到定位的作用

  回车执行该语句

  ①系统会提出问题  要分出多少个槽  5461 

  ②系统接着提出问题 将这些槽 分给谁   回答   一个主服务器的id

  ③系统再问 从哪里获得这些槽  回答 一个主服务器的id

  ④接着执行done  和yes  开始重新分片

 4.添加主节点

 redis-cli --cluster add-node 192.168.134.124:7000 192.168.134.124:7006

              #新增加的主节点    #一个已存在的节点 定位集群的作用

将7006添加到7001所在集群中,成为一个主节点,但此时它不持有任何槽,需要重新分片

具体操作图 如下,

 之后输入done 即可执行分槽。

开始后,确认,系统问你要执行吗

输入yes

 然后会执行一段时间的迁移过程

Guess you like

Origin www.cnblogs.com/zhu-lin-11211/p/12093568.html