知识点

相关文章

更多

最近更新

更多

redis新增集群节点-redis集群管理

2019-03-21 22:14|来源: 网路

新增一个节点6383,并启动


执行redis-trib.rb add-node命令添加节点

redis-trib.rb add-node  new_host:new_port existing_host:existing_port
[root@master redis-cluster]# /opt/redis/redis-3.2.1/src/redis-trib.rb add-node 192.168.56.101:6383 192.168.56.101:6380
>>> Adding node 192.168.56.101:6383 to cluster 192.168.56.101:6380
>>> Performing Cluster Check (using node 192.168.56.101:6380)
M: ecaef90fb93d61edd7522221136be88ae66ad3bc 192.168.56.101:6380
   slots:0-5460 (5461 slots) master
   0 additional replica(s)
M: 52953677dbc82dc4f17b33a922b38462944b002c 192.168.56.101:6382
   slots:10923-16383 (5461 slots) master
   0 additional replica(s)
M: c6e6b65324fac0711a22439d264cca141d2e5082 192.168.56.101:6381
   slots:5461-10922 (5462 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.56.101:6383 to make it join the cluster.
[OK] New node added correctly.


查看集群信息:

192.168.56.101:6382> cluster nodes
03596d92625f1b778f29eb4a9128d92809dfd79a 192.168.56.101:6381 master - 0 1468853934619 2 connected 5461-10922
e6d316a0dcd7cfcc98de645d86989d5527e86e55 192.168.56.101:6383 master - 0 1468853932181 0 connected
b1939026deb80fedde7bdb22c1df3ecfaa72f608 192.168.56.101:6380 master - 0 1468853933604 1 connected 0-5460
6aa027917d223b8fedd42893a89fb0e2c07c8b27 192.168.56.101:6382 myself,master - 0 0 3 connected 10923-16383


发现刚添加进来的6383没有插槽数,接下来给新添加的6383分配插槽,将集群中的一部分(1000个)插槽分配给6383

[root@master redis-cluster]# /opt/redis/redis-3.2.1/src/redis-trib.rb reshard 192.168.56.101:6380
>>> Performing Cluster Check (using node 192.168.56.101:6380)
M: b1939026deb80fedde7bdb22c1df3ecfaa72f608 192.168.56.101:6380
   slots:0-5460 (5461 slots) master
   0 additional replica(s)
M: 6aa027917d223b8fedd42893a89fb0e2c07c8b27 192.168.56.101:6382
   slots:10923-16383 (5461 slots) master
   0 additional replica(s)
M: 03596d92625f1b778f29eb4a9128d92809dfd79a 192.168.56.101:6381
   slots:5461-10922 (5462 slots) master
   0 additional replica(s)
M: e6d316a0dcd7cfcc98de645d86989d5527e86e55 192.168.56.101:6383
   slots: (0 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 1000【要移动的插槽数】
What is the receiving node ID? e6d316a0dcd7cfcc98de645d86989d5527e86e55【接收节点】
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.【所有的节点重新分配插槽】
  Type 'done' once you entered all the source nodes IDs.【数据要提到slot的节点ID,最后用done结束】
Source node #1:all
......
Do you want to proceed with the proposed reshard plan (yes/no)? yes
......





重新查看集群节点信息

192.168.56.101:6382> cluster nodes
03596d92625f1b778f29eb4a9128d92809dfd79a 192.168.56.101:6381 master - 0 1468855258984 2 connected 5795-10922
e6d316a0dcd7cfcc98de645d86989d5527e86e55 192.168.56.101:6383 master - 0 1468855261016 4 connected 0-332 5461-5794 10923-11255
b1939026deb80fedde7bdb22c1df3ecfaa72f608 192.168.56.101:6380 master - 0 1468855260001 1 connected 333-5460
6aa027917d223b8fedd42893a89fb0e2c07c8b27 192.168.56.101:6382 myself,master - 0 0 3 connected 11256-16383


书生参考网络整理


redis知识点

redis快速入门

reids常用命令

redis数据结构

java_API_客户端

Jedis

Tlcache

redis_持久化

AOF

RDB

发布订阅(pub/sub)

redis_事件

redis事务

redis通讯协议

RESP(Redis Serialization Protocol)

redis高可用

redis哨兵

监控(Monitoring) 提醒(Notification) 自动故障迁移(Automatic failover)

redis主从复制

  • 复制模式

    1. 主从复制
    2. 从从复制
  • 复制过程

    • slave向master发送sync命令;
    • master开启子进程执行bgsave写入rdb文件;
    • master发送缓存和RDB文件给slave;
    • master发送数据发送给slave完成复制;

redis集群(Redis_Cluster)

相关问答

更多
  • 用的是什么集群方式,JedisSentinelPool 还是ShardedJedisPool。 如果用的是前者,配置是需要连接sentinel端口的(默认26379),不是连接redis端口(6379)。 或者把spring相关配置文件贴出来一下。 127.0.0.1:26379 127.0.0.1:26380 127.0.0.1:26381
  • 用的是什么集群方式,JedisSentinelPool 还是ShardedJedisPool。 如果用的是前者,配置是需要连接sentinel端口的(默认26379),不是连接redis端口(6379)。 或者把spring相关配置文件贴出来一下。
    将src下的可执行命令全部移动到/usr/local/redis/bin/目录下,执行该命令:mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server /usr/local/redis/bin,然后将配置文件移动到/usr/local/redis/etc/目录下,执行该命令:mv redis.conf /usr/local/redis/etc/。
  • redis sentinel集群为什么要3个以上 3个以上是通过增加 sentinel 节点的个数提高对于故障判断的准确性,因为领导者选举需要至少一半加1个节点,奇数个节点可以在满足该条件的基础上节省一个节点, 简单的说: 如果有3个节点的 sentinel 当一个 redis 出现问题的时候, sentinel 会马上进投票选举,只有选票超过半数才主观下线哦!,最后客观下线 , 所以要3个sentinel节点.
  • 正如你在这里看到的,redis现在支持自动分区。 As you can see here, redis supports now automatic partitioning.
  • 结果我从之前的项目中设置了.bashrc REDIS_URL 。 显然,redis gem正在为所有redis连接设置该URL的密码(即使我没有使用我的集群的url)。 感谢soveran在这个问题中指出这个可能性 Turns out I had REDIS_URL set in .bashrc from a previous project. Apparently the redis gem was setting the password from that url for ALL redis conn ...
  • 正如您所说,您在Redis群集中使用了3个主节点,因此可以清楚地看到,如果其中一个节点将关闭,那么您将收到CLUSTERDOWN错误。 为了避免这些类型的错误并获得高可用性,最好将从属服务器附加到主节点(如此处的官方Redis群集教程中所示)。 有一个理由让奴隶与你的主人联系以获得更高的可用性。 为此,您可以阅读上面Redis群集教程链接中提到的这些行。 Redis集群中有16384个散列槽,为了计算给定密钥的散列槽,我们只需采用密钥模数16384的CRC16。 Redis群集中的每个节点都负责散列槽的子集 ...
  • 如果你在这里查看 ,可以将hostAndPort作为一个丑陋的数组提供,与spring.redis属性组分开; clusterHostAndPorts: - host1:6379 - host1:6380 - host1:6381 测试我的本地,它确实有效,你问的方式不受支持,可以在这里看到,然后在 这里 ,然后在 这里 。 HostAndPort需要用':'分隔。 主机和端口字符串需要指定为host:port If you check here, it is possible to supp ...