美文网首页
Redis主备集群配置

Redis主备集群配置

作者: 刘一一同学 | 来源:发表于2017-06-27 10:24 被阅读144次

redis3.0以上支持集群模式,集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。

3.0之后的功能,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。

集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。

1、下载文件

$ wget http://download.redis.io/releases/redis-3.0.3.tar.gz 

$ tar xzvf redis-3.0.3.tar.gz

$ cd redis-3.0.3

$ make all & cd src & make installprefix=/home/liubowei/redis-cluster

2、复制redis.conf 7001、7002、7003、7004

$ cd  /home/liubowei/redis-cluster

$ mkdir config

$ cp /home/liubowei/redis-3.0.3/redis.conf  /home/liubowei/redis-cluster/config

$ cd config

$ mv  redis.conf  redis7001.conf

$ cp  redis7001.conf  redis7002.conf

$ cp  redis7001.conf  redis7003.conf

$ cp  redis7001.conf  redis7004.conf

3、修改配置文件redis7001.conf、redis7002.conf、redis7003.conf、redis7004.conf

port 7001                              #7001、7002、7003、7004

daemonize yes

cluster-enabled yes

cluster-config-file nodes-7001.conf      #7001、7002、7003、7004

cluster-node-timeout 15000

4、启动redis

$ redis-server  ../config/redis7001.conf

$ redis-server  ../config/redis7002.conf

$ redis-server  ../config/redis7003.conf

$ redis-server  ../config/redis7004.conf

5、将redis示例加入到集群中

$ redis-cli -p 7001

> cluster meet 127.0.0.1 7002

> cluster meet 127.0.0.1 7003

> cluster meet 127.0.0.1 7004

> cluster nodes #查看集群情况

可以通过cluster forget清除集群中的某个实例

6、分配卡槽(slots),redis-cluster总共有16384个槽位(0-16383)

$ vi nodes-7001.conf  #分配slots:0-4095(注意127.0.0.1:7000对应的行尾)

65d2857f061c431d80dd347ba908a1d896c9706c 127.0.0.1:7003 master - 0 1498481148811 2 connected

24826566d6c7b91924a5a31d27bf8521e7ae2098 127.0.0.1:7004 master - 0 1498481149811 3 connected

00b37ff7a84d854519cfe54918d52ea82662eeef 127.0.0.1:7002 master - 0 1498481147809 1 connected

c89ecc22e3bb5a728d356ef5c0d8a485f842b8b5 127.0.0.1:7001 myself,master - 0 0 0 connected 0-4095

vars currentEpoch 3 lastVoteEpoch 0

$ vi nodes-7002.conf  #分配slots:4096-8191(注意127.0.0.1:7002对应的行尾)

00b37ff7a84d854519cfe54918d52ea82662eeef 127.0.0.1:7002 myself,master - 0 0 1 connected 4096-8191

65d2857f061c431d80dd347ba908a1d896c9706c 127.0.0.1:7003 master - 0 1498481149011 2 connected

24826566d6c7b91924a5a31d27bf8521e7ae2098 127.0.0.1:7004 master - 0 1498481149013 3 connected

c89ecc22e3bb5a728d356ef5c0d8a485f842b8b5 127.0.0.1:7001 master - 0 1498481148009 0 connected

vars currentEpoch 3 lastVoteEpoch 0

$ vi nodes-7003.conf  #分配slots:8192-12287(注意127.0.0.1:7003对应的行尾)

c89ecc22e3bb5a728d356ef5c0d8a485f842b8b5 127.0.0.1:7001 master - 0 1498481149512 0 connected

65d2857f061c431d80dd347ba908a1d896c9706c 127.0.0.1:7003 myself,master - 0 0 2 connected 8192-12287

00b37ff7a84d854519cfe54918d52ea82662eeef 127.0.0.1:7002 master - 0 1498481148510 1 connected

24826566d6c7b91924a5a31d27bf8521e7ae2098 127.0.0.1:7004 master - 0 1498481149612 3 connected

vars currentEpoch 3 lastVoteEpoch 0

$ vi nodes-7004.conf  #分配slots:12288-16383(注意127.0.0.1:7004对应的行尾)

c89ecc22e3bb5a728d356ef5c0d8a485f842b8b5 127.0.0.1:7001 master - 0 1498481150912 0 connected

24826566d6c7b91924a5a31d27bf8521e7ae2098 127.0.0.1:7004 myself,master - 0 0 3 connected 12288-16383

65d2857f061c431d80dd347ba908a1d896c9706c 127.0.0.1:7003 master - 0 1498481151914 2 connected

00b37ff7a84d854519cfe54918d52ea82662eeef 127.0.0.1:7002 master - 0 1498481149912 1 connected

vars currentEpoch 3 lastVoteEpoch 0

7、给每个master节点配一个slave节点

$ cp  redis7001.conf  redis8001.conf

$ cp  redis7001.conf  redis8002.conf

$ cp  redis7001.conf  redis8003.conf

$ cp  redis7001.conf  redis8004.conf

8、修改配置文件redis8001.conf、redis8002.conf、redis8003.conf、redis8004.conf

port 8001                              #8001、8002、8003、8004

daemonize yes

cluster-enabled yes

cluster-config-file nodes-8001.conf      #8001、8002、8003、8004

luster-node-timeout 15000

9、将8001、8002、8003、8004加入集群

$ redis-cli -p 7001

> cluster meet 127.0.0.1 8002

> cluster meet 127.0.0.1 8002

> cluster meet 127.0.0.1 8003

> cluster meet 127.0.0.1 8004

10、将从节点分别挂到7001、7002、7003、7004上,语法格式:cluster replicate {主节点的hash值}

$ ./redis-cli -p 8001

> clusterreplicatec89ecc22e3bb5a728d356ef5c0d8a485f842b8b5

$ ./redis-cli -p 8002

> cluster replicate 00b37ff7a84d854519cfe54918d52ea82662eeef

$ ./redis-cli -p 8003

> cluster replicate 65d2857f061c431d80dd347ba908a1d896c9706c

$ ./redis-cli -p 8004

> cluster replicate 24826566d6c7b91924a5a31d27bf8521e7ae2098

11、连接使用集群模式

$ ./redis-cli -c -p 7001

附录:常用的Redis-cluster命令

#### 集群(cluster)

cluster info 打印集群的信息

cluster nodes 列出集群当前已知的所有节点(node),以及这些节点的相关信息。

#### 节点(node)

cluster meet 将 ip 和 PORT 所指定的节点添加到集群当中,让它成为集群的一份子。

cluster forget 从集群中移除 node_id 指定的节点。

cluster replicate 将当前节点设置为 node_id 指定的节点的从节点。

cluster saveconfig 将节点的配置文件保存到硬盘里面。

#### 槽(slot)

cluster addslots [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。

cluster delslots [slot ...] 移除一个或多个槽对当前节点的指派。

cluster flushslots 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。

cluster setslot node 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。

cluster setslot migrating 将本节点的槽 slot 迁移到 node_id 指定的节点中。

cluster setslot importing 从 node_id 指定的节点中导入槽 slot 到本节点。

cluster setslot stable 取消对槽 slot 的导入(import)或者迁移(migrate)。

#### 键(key)

cluster keyslot 计算键 KEY 应该被放置在哪个槽上。

cluster countkeysinslot 返回槽 slot 目前包含的键值对数量。

cluster getkeysinslot 返回 COUNT 个 slot 槽中的键。

相关文章

  • Redis主备集群配置

    redis3.0以上支持集群模式,集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽...

  • 主备和集群

    今天来聊聊,什么是主备,什么是集群,什么是节点 主备主备多用来数据库场景,比如:mysql主备,redis主备等等...

  • Redis主备集群配置(ruby安装)

    注意:如果想在公网上访问集群,建立集群的时候使用公网地址(123.56.3.208为我的公网地址),例如./red...

  • Redis-集群

    集群 by shihang.mai redis单节点 AKF分析 主备:client只能访问主,master挂了,...

  • Redis 4.0集群配置

    Redis 集群,官方方案需要6个节点,3个主3个从。 安装依赖软件 安装redis 集群配置 创建集群 集群测试...

  • redis集群模式配置

    配置redis集群模式 首先配置redis集群模式最好使用3主3从(6个节点)的模式,测试环境中,只能在一台机器上...

  • redis集群配置

    redis集群配置 1.一主三从三哨兵 第一步,下载安装redis 第二步,配置节点的redis.conf 1.主...

  • redis集群安装

    内含ruby源和gem和gem redis源 Reids集群使用的是投票机制,并且需要主备模式的支持,要让集群正常...

  • redis 集群搭建

    Redis集群 使用redis做缓存工具 实现系统高可用,redis需要做主备。使用redis做分片集群。 向业务...

  • docker-compose配置redis集群搭建(三主三从分槽

    docker-compose配置redis集群搭建(三主三从分槽模式) $ 前言 docker-compose配置...

网友评论

      本文标题:Redis主备集群配置

      本文链接:https://www.haomeiwen.com/subject/orgscxtx.html