在扩展到多机之前,我们先想一下单机的Redis有什么缺点:
有可能出现单点故障 , 这样Redis服务就不可用了单一台机器的内存有限,存储不了太多的数据如果访问量很大的话 , 单台机器压力会很大
通过第一个缺点,我们可以引出为什么需要主从复制和哨兵 。大家想一想,如果我们只有一个Redis服务,要是服务挂了就没法用了,但如果我们安排多一台Redis服务器 , 它的数据时刻与第一台Redis的数据保持一致,这样当第一台Redis挂掉后 , 我们就可以把请求迁移到第二台Redis上,这样Redis服务的可用性就提高了 。为了让第二台Redis的数据与第一台Redis保持一致,我们就需要用到主从复制 。
有时候,可能一主一从的配置还是不够保险,这个时候我们就要为主节点配置两个或以上的从节点,那么问题来了 , 要是主节点挂了,该通过什么方案在从节点中选出新的主节点呢?这就用到了哨兵机制 。
而且在一主多从的情况下,我们使用主从复制让多台Redis的数据保持一致 , 这个时候我们就可以把读请求分摊到从节点上,这样能有效缓解主节点的读压力 。
但如果Redis的写请求压力也很大 , 而且数据量很大,这个时候为Redis增加备份机的横向扩展已经帮不上什么忙了,这个时候我们就要考虑纵向扩展 , 增加多台Redis分摊写请求,让不同的key落到不同的机器上 。这个时候我们就要考虑使用一致性哈希等算法把不同的key分给不同的机器 。
Redis自身也提供了集群机制 , 但内部使用的不是一致性哈希,而是哈希槽 。简单来说就是在哈希槽中划分不同的区间 , 不同的区间对应不同的机制;当扩容或缩减的时候有相应的哈希槽调整策略 。
我最初学习Redis的多机策略的时候就是搞不清楚集群,主从复制,哨兵机制之间的关系 。其实集群就是一套完整的Redis多机解决方案,他有效解决了单机Redis的所有问题 。当你在集群中为某个节点配置从机的时候,主从节点间同步用的就是主从复制 。主节点挂掉之后,从节点的选取 , 内部的逻辑就和哨兵机制相似 。当我们使用集群机制的时候,就可以省去自己写类似一致性哈希这样的分摊逻辑 , 集群机制会给节点加上相应的数据结构来完成这些功能 。
如果想深入了解集群背后的实现原理,我推荐这样一个学习路线:
首先登录官网,按照官网的步骤学习配置主从复制,配置哨兵,搭建集群
然后看《Redis的设计与实现》这本书,阅读主从复制,哨兵和集群这三个章节
4. 后话
阿粉觉得 , 如果把文章中提到的Redis的点都深入了解一下,Redis基本能算入门了 。
写下这篇感想主要也是想提醒自己,学一项技术的时候多问为什么 , 这样知识学到手后不容易忘掉 。
至于为什么说只能说是入门Redis,因为Redis的用法实在太多了,你可以把它当作缓存 , 也可以把它当成数据库,甚至能把它当作消息队列 。缓存可能大家都很熟悉了,在当数据库的方面Redis简直是潜力无限,大家一定要善用它的bitmap位图功能,简直能在面对复杂需求的时候玩出花来 。比如说老板要统计所有用户一年中的登录天数 , 一个用户只需要365bit(46B)的空间,相比于用传统的MySQL不知道也节省多少倍的空间 。
阿粉觉得,如果能把一项技术长处应用在自己的系统中 , 才算是用好了这项技术 。关于Redis,在实际应用中还有很多东西得靠我们自己探索,加油共勉!
【关于 Redis ,这里有你不知道的知识】
推荐阅读
- 关于养老保险,灵活就业人员和企事业职工有何不同,一次性说清楚
- 关于春分的经典诗句白居易 关于春分的经典诗句
- 关于新年的祝福语英语 关于新年的祝福语
- 赤小豆和红豆的区别看这里是什么 赤小豆和红豆的区别看这里
- 一叶障目的道理,一叶障目这个成语说明了一个关于光的科学道理。?
- 关于体育的手抄报内容 关于体育的手抄报
- Redis轻松添加从节点:零阻塞、零烦恼,系统性能再飙升
- 腊八节关于岳飞的传说 腊八节传说竟是为了纪念岳飞
- 关于孩子静待花开的励志语句 静待花开的励志语句
- 关于立春的谚语有哪些 关于立春的谚语有哪些四年级