什么是Redis集群?

本文深入探讨了Redis Cluster的哈希槽原理和数据路由机制,包括16384个哈希槽如何分配到Redis实例,客户端如何通过CRC16算法找到数据所在位置。此外,还讨论了Redis Cluster与一致性哈希的区别,以及 Codis 的数据路由和迁移策略。
摘要由CSDN通过智能技术生成

面试官聊下Redis的分片集群,先聊 Redis Cluster好咯?

面试官Redis Cluser是Redis 3.x才有的官方集群方案,这块你了解多少?

候选者:嗯,要不还是从基础讲起呗?

候选者:在前面聊Redis的时候,提到的Redis都是「单实例」存储所有的数据。

候选者:1. 主从模式下实现读写分离的架构,可以让多个从服务器承载「读流量」,但面对「写流量」时,始终是只有主服务器在抗。

候选者:2. 「纵向扩展」升级Redis服务器硬件能力,但升级至一定程度下,就不划算了。

候选者:纵向扩展意味着「大内存」,Redis持久化时的”成本”会加大(Redis做RDB持久化,是全量的,fork子进程时有可能由于使用内存过大,导致主线程阻塞时间过长)

候选者:所以,「单实例」是有瓶颈的

候选者:「纵向扩展」不行,就「横向扩展」呗。

候选者:用多个Redis实例来组成一个集群,按照一定的规则把数据「分发」到不同的Redis实例上。当集群所有的Redis实例的数据加起来,那这份数据就是全的

候选者:其实就是「分布式」的概念(:只不过,在Redis里,好像叫「分片集群」的人比较多?

候选者:从前面就得知了,要「分布式存储」,就肯定避免不了对数据进行「分发」(也是路由的意思)

候选者:从Redis Cluster讲起吧,它的「路由」是做在客户端的(SDK已经集成了路由转发的功能)

候选者:Redis Cluster对数据的分发的逻辑中,涉及到「哈希槽」(Hash Solt)的概念

候选者:Redis Cluster默认一个集群有16384个哈希槽,这些哈希槽会分配到不同的Redis实例中

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值