redis技术演进(含redis6介绍)

2020-06-11  本文已影响0人  hhwwxxx

redis的版本迭代,一直遵循着一个统一的原则:不断优化高性能读写的瓶颈,在保证强一致性的,尽量通过并发解决它

1.内存 ko 硬盘

redis的起源,来自于作者自己的需求:网站访问量,访问需求提升后,磁盘数据库规则的读写模式不再满足,于是内存数据库以其接近内存的读写速度,灵活的数据结构登上舞台

这个阶段,redis确定了其简单高效强一致性的"单线程"模式,所有的版本迭代都是围绕不断优化"单线程"的效率,使其不断接近内存读写速度极限的过程

2."快速推出的集群"

硬件更新迭代的速度永远没有需求增长来的快,当"单核单线程"的redis碰到性能瓶颈时,没有分布式经验的作者,贸然推出了"集群版redis",因为分布式,一致性上的问题,草草收场,此版本redis被抛弃

3.一带多的高可用主从模式

经过系统学习分布式知识后,redis的作者推出了一写多读的主从模式,通过保证主从节点的高度一致性,减少了主节点的高并发读压力,并观察验证了1-N的数据一致性效果

能进行主从切换,主从节点的身份可以自由的切换

4."观察者集群"的哨兵模式

在主从模式上积累了足够的经验后,redis的作者退出了分布式集群模式上更近一步的哨兵模式,其特点如下:

哨兵的角色,既满足了主从实时监控,自动切换的需求,又能在低并发的场景下验证集群一致性方案的可行性,是很优秀的一步迭代方案

5.官方"集群模式"出现之前的"替代集群方案"

因为冒进走的弯路,作者之后的分布式学习践行,多个迭代版本的小步尝试,导致redis长期面临高并发读写性能瓶颈,最快的方式就是分布式集群化,于是这段空档期,出现了许多redis的分布式方案,比如codis,twemproxy等

这些集群方案因为和系统联系不够紧密,导致的问题是:key分布后,无法绕过代理直接获取key在哪个机器,redis单个节点沦为单纯的读写存储,另外的问题就是扩容缩容困难,难以进行线上的无缝热迁移

6.官方推出正式的集群模式

经过主从模式,哨兵模式的技术积累,演进,以及实践检验,官方推出了正式的集群模式,特点如下:

7.redis6新特性:"多线程",新的通信协议,系统功能全部模块化,ACL,官方集群代理模块......

redis的作者在19年底,退出了redis6的预发布版本,通过几个月时间的实际运行和反馈,于5月退出了redis6的正式版本

两个版本之间的和改变和取舍可以看到redis作者对redis的准确定位和角色判断

这是一个重大的版本,是redis的"企业级实现",各个新特性的特点如下:

从redis各个版本迭代的演进看,一直遵循着"确保命令执行的正确性","单核单线程极致性能","适度引入并发提升处理能力上限"的设计原则

值得一提的是,redis6的开发过程,也引用了"并发"的模式,redis6有长达几十人的commit"贡献者",尤其SSL功能模块是在完全没有作者帮助的情况下,有其他贡献者完成的

结合redis6实现的"系统框架化,平台化",以及modules的引入,可以预见,未来的redis会吸引更多的贡献者参与进去,各种新的模块功能将不断出现,redis未来的生命力将更加旺盛

上一篇 下一篇

猜你喜欢

热点阅读