redis集群 客户端与部分节点失联后如何处理请求?

客户端C连接redis集群的A节点是可以的,但是无法连接B节点。A、B作为集群不同的分片是互通的。
此时客户端要读取B上的数据,是否可以获取到?
如果可以,是如何传递数据的?
如果不可以,这是否属于一种单点问题?
学习redis集群过程中遇到一个问题,希望有人能帮忙解答,十分感激

自测结果补充:
自己搭建完了一个集群后尝试以上情况,发现客户端无法从B中读写数据。
如下图:服务器上7002端口并没有对外开放,本地客户端只能通过7001端口访问集群。当尝试读写B上的key时,由于客户端无法成功重定向,导致失败

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/1080195
  • 你也可以参考下这篇文章:分布式常见问题丨高并发时重复提交,基于Redis的幂等性解决方案来啦
  • 除此之外, 这篇博客: 面试专题——Redis中的 1.3、为什么使用跳表?跟B+树怎么比?查找的时间复杂度是多少? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 为什么使用跳表:1、性能考虑:在高并发的情况下,树形结构需要执行一些类似于 rebalance 这样的可能涉及整棵树的操作,相对来说跳跃表的变化只涉及局部

    2、实现考虑:在复杂度与红黑树相同的情况下,跳跃表实现起来更简单,看起来也更加直观;

    为啥不用B+:B+树的原理是 叶子节点存储数据,非叶子节点存储索引,B+树的每个节点可以存储多个关键字,它将节点大小设置为磁盘页的大小,充分利用了磁盘预读的功能。每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度的降低磁盘的IO;因为数据在内存中读取耗费的时间是从磁盘的IO读取的百万分之一

    时间复杂度:O(logn)