思考:Redis为什么这么快?

注:本篇小短文,随心而发,属于笔者自己的一个技术思考吧。
请看到这句话的朋友慎重,是否真的考虑阅读下去,因为不一定能给您带来帮助。但是您不惜浪费时间读完,我希望真的能引起你一点点思考,并且给您带来一定的帮助。(要是有一点帮助,不妨给个赞,因为这种类似的思考,总不间断的出现,要可以,后续可能继续分享)

正文

相信不少同学在面试、或者是平常也会思考过这个问题:为什么Redis这么快?
这个问题,网上有不少人分享总结过了。类似八股文的形式,面试的话直接套用就好了。可以说是拼记忆力的"知识"了。

最近也断断续续看了一个月的redis代码,大大小小的思维导图,笔记流程图,模块架构图画三四十张。可越往下深入,越糊涂!
糊涂在哪?以前是对Redis了解不深,现在要用了解了,细节也了解了。可是更迷糊,为什么作者这样设计?单从代码形式上看,它的代码并不是最优雅的实现方案(网络也不少人提出更好的线程模型等),但经过多年的发展,大量生产环境的实际应用,已经论证了Redis当前的实现是极其稳定和棒棒的!(可以说是单线程模型下的变态快了!)。

但是看完代码后,相信很多人会出现:
东西是学习到了,但是却不一定能真的领悟到作者为什么这样实现?
这样设计的背后原理和动机是什么?
有没更好的方法?
而且这个所谓的更好是不是真的适合redis的?

各种发散问题,都能提出来。

正所谓:“纸上得来终觉浅”!

思前想后:对于一个普通的开发者,Redis的应用者来说,怎么才能最大限度的吸取Redis代码的养分?

今天想到一个点子:我们不妨反其道而行之~~~。

就比如:Redis为什么如此快?这个问题来说吧。

别人写的Redis快。如果让你自己实现一个很慢的Redis!,你能想出各种奇葩的方式让它慢吗?

从接受到网络请求,到协议数据解析,到数据存储落地,然后结果反馈给客户端等等步骤。所有的步骤都实现一个极其慢的方案。
按照"贪婪算法”思路,每一步最优解,最后的结果肯定是最优解;那么我们每一步都是最差解,最后的结果肯定是最差方案了吧?

说到这,读者可能会不禁疑问,你傻X啊?你是要学习Redis为什么快,干嘛想怎么慢? 呵呵。勿急嘛。

读者朋友不妨问问自己。了解一个技术方案的具体实现,是不是等于也了解到之所以如此实现动机? 这个恐怕因人而异了。
所以,如果你首先自己尝试去设计一个最糟糕的方案,然后再对比redis的优雅方案,你或许能明白,为什么如此设计,它的设计比你的设计高明在哪? 从而通过对比的方式来进行学习,做到最大限度的吸取作者提供的养分!
这是不是比你直接去背网上的八股文:为什么快?来的更深刻?

完毕!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值