开源轶事00Redis 是亲生的懒汉 Java 庶出终归是庶出
Posted 码不停Ti
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源轶事00Redis 是亲生的懒汉 Java 庶出终归是庶出相关的知识,希望对你有一定的参考价值。
起源
今天复习了一下 Redis 的知识点,去年的面经里 Redis 还只存在 大佬的SSSSSSP面经中,如今面试,人人都要 说上两嘴 Redis,成了八股文中 极其耀眼的一股,可以说 Redis 现在是 如日中天.
不过大家写项目真的 除了 mysql 还 都引入了Reids 吗?
真究竟是 一股 新势力,还是 恶势力,还是要 骑驴看唱本,走着瞧。
文章目录
皇亲国戚-Reids 的本家 ANSI C
Redis 是个用内存 存储的数据库,这就了不得了,家人们,MySQL 啥的 开源的那帮 数据库,都用 硬盘 持久化,CPU ,每次发下圣旨都要 从上到下,传到硬盘上 都 有些时日,甚至有的 常用文件 都存在 硬盘上,经常调用,每次都要 硬盘IO,消耗大量人力物力,还很漫长。最后用的倒是很方便,直接映射文件路径,多线程高并发的时候 只能苦苦排队,可以称得上是 一骑红尘妃子笑,无人知是荔枝来。
反过来呢,说Reids,用的是最金贵的内存存储,虽然不像 L1 L2 L3那些中央的缓存,站在朝廷里传递奏折,有什么消息,什么风儿 吹到 CPU 皇上身边,可Redis 也算是 住在皇城根er上的。
这天下,发生什么大事,MySQL的数据奏折传过来,Reids 就快人一步先存下了,为啥要说他的本家呢,C语言是什么,接近底层的语言,政治机器要运转,谁最听他的,说他爱听的,自然就会交流的多,毕竟话不投机半句多,C语言 算的上是 嫡长子,Reids 传承了 C 的衣钵,又有内存DRAM 的护体,可以说是顺风顺水,
Java 你还要死撑多久?
转头看看 Java 和 Python,一个是 庶出的托管语言全靠 JVM 虚拟机 公公给递话,Python 有啥事也不会 提前想好了,解释型语言嘛,不到用的时候 他也不翻译,不到战场上 都不知道自己 装备都用错了,大鼻涕留嘴里才知道醒,就算他资质聪慧干的活多,这也难当重任。
毕竟政局还是求稳,Java 足够稳了,是因为国家在扩张,机器随着摩尔定律越做越大,他作为外来物种,吃拿卡要,占再多的内存,上头睁一只眼闭一只眼也就过去了,可现在到了瓶颈了,毕竟版图的扩张是有限的,摩尔说的那套定律也不好使了,Java靠着 硬件红利 做大做强,现在局势平稳了,就该算账了,打土豪分田地,原来的大将军C++ 自从 Java来了就失了宠,忍气吞声 几十年,现在也站出来了,新兴的 go 也十分亮眼,倒是 Java 局势显得不那么乐观了,跨平台的 Java 在这个 Linux 称王称霸的时代 根本就起不了作用,全世界都再说中国话,你会八国语言 又有什么卵用,难不成你还有叛乱之心?想去WIN 和 Mac阵营不成?别说你 Java运行的稳稳当当,还可以热部署,自己私设公堂,自动回收内存,私通外敌,铤而走险 try 危险的代码,就算你能 catch 的住,也浪费了大量人力物力,不把操作系统放在眼里,如今只能被批斗。
看着吧,要不你就学学 C 语言,提前编译好静态代码,别给我动态更新这么多破事,说的就是你们家反射,程序跑起来才干活,早干嘛去了,虽然大家都知道,反射是名大将,AOP 和 IOC 都离不开他,可时代不同了,没有这么多资源让你 瞎闹,你隔这里阻塞着线程回收内存,人家隔壁 go 跑几百个微服务,直接重启队伍就跟新的一样,你能比吗?
要不这样吧,你把私设的公堂关了吧,你给弟兄们分配好内存把军粮发出去就行了,到时候你也微服务,用完了直接关机,不用整这么多破事,操作系统给你回收内存,把弟兄们安葬好了。
还有那个谁,Spring,Java你是没了 Spring 你就活不了吗?权限全都给 Spring 了,你看他听你的吗?人家Spring 为啥敢站出来,还不是因为 你那 JavaEE 不行,人家顶替了你发的 标准律令,你屁都不敢放一个,兄弟们都给着他跑了,但人家也一直没忘本,做大做强了一直带着你玩儿,也没去别的阵营。
现在你就好好 叫上 Oracle 和 Spring 好好改改这 JVM ,把 Spring GraalVM Native 整出来, 把反射和 动态代理都给干掉,只给你一次机会,不允许有下一次。
绣春囊的事一出,凤姐出主意把一些大丫鬟打发出去,但王夫人不同意,原文是这样说的
王夫人叹道:“你说的何尝不是,但从公细想,你这几个姊妹也甚可怜了。 也不用远比,只说如今你林妹妹的母亲,未出阁时,是何等的娇生惯养,是何等的金尊玉贵, 那才象个千金小姐的体统。如今这几个姊妹,不过比人家的丫头略强些罢了。通共每人只有两三个丫头象个人样,余者纵有四五个小丫头子,竟是庙里的小鬼。如今还要裁革了去,不但于我心不忍,只怕老太太未必就依。虽然艰难,难不至此。 我虽没受过大荣华富贵,比你们是强的。如今我宁可省些,别委屈了他们。以后要省俭先从我来倒使的。”
可以看出来贾府日渐艰难,过得日子一代不如一代。但这里要说的重点是贾敏和王夫人妥妥的是嫡女,可王夫人并没有觉得如今的迎春探春过得不如当初的她们是理所应当的,甚至还因为年轻一代的姑娘们过得不如贾敏和自己年轻的时候而感到心疼。
全书唯一明说嫡庶区别的就是凤姐的一番话
凤姐儿笑道:“好,好,好!好个三姑娘,我说不错,只可惜他命薄,没托生在太太肚里。”平儿笑道:“奶奶也说糊涂话了。他就不是太太养的,难道谁敢小看他,不和别的一样看待么?”凤姐叹道:“你那里知道?虽然正出庶出是一样,但只女孩儿却比不得儿子。将来作亲时,如今有一种轻狂人,先要打听姑娘是正出是庶出,多有为庶出不要的。殊不知庶出只要人好,比正出的强百倍呢。将来不知那个没造化的,为挑正庶误了事呢,也不知那个有造化的,不挑正庶的得了去。”
JVM 的语言 毕竟 也不是 C 语言 这样的 原生语言 ,垃圾回收要取消,就连JVM 虚拟机都要拆。
“你说的何尝不是,但从公细想,你这几个姊妹也甚可怜了。 也不用远比,只说如今你JAVA的母亲JVM,未出阁时在单体时代,是何等的娇生惯养,是何等的金尊玉贵, 那才象个千金小姐的体统。如今这几个姊妹,不过比人家的丫头略强些罢了。通共每人只有两三个丫头象个人样就有类加载器 垃圾处理器几个小丫鬟,余者纵有四五个小丫头子,竟是庙里的小鬼。如今还要裁革了去,不但于我心不忍,只怕老太太未必就依。虽然艰难,难不至此。 我虽没受过大荣华富贵,比你们是强的。如今我宁可省些,别委屈了他们。以后要省俭先从我来倒使的。内存和时间都金贵”
想当年Java 刚出来的时候 这通身的气派,竟不象老祖宗的外孙女儿,竟是个嫡亲的孙女。
如今王夫人也不希望这个病病歪歪而又叛逆大胆的外甥女成为自己的儿媳。
农夫与蛇 ,JVM 和 Java ,Docker 和K8S
给Java 指了条 明路,要想活下去,就要改,
JAVA:“我问你个问题,是内存和运行时间对我重要,还是你对我重要?”
JVM:“我。”
JAVA:“再想想。”
JVM:“不会是钱吧?”
JAVA:“再想想。”
JVM:“还是我。”
JVM:“你和内存、运行时间对我都不重要,没有你,对我很重要!”
为什么要有这一段呢?按说就这两个选项,都已经答过一遍了,为什么还需要再来一轮问答呢?
其实这一轮问答更富深意,黄四郎在答案被否定后,他的回答是:还是我重要。
在他的世界里,只可能有这两个选择,他想象不到其他的答案。张麻子押注了一切,不惜所有代价,将自己从威严的高楼上拉下来,无非就是这两个目的:要么为了钱,即为了利益;要么为了取而代之,代替自己成为新的鹅城之主。(正如黄四郎前面所说:“钱归了你,我认了,但为什么要散给穷人?”显然,黄四郎的思想中,只有成王败寇,奴役和被奴役,压迫与被压迫,无非是谁取代谁,谁奴役谁的问题。)他无法想象第三种可能性,因为在已有的过往的经验中,战争、造反、对抗,甘愿付出血的成本的,没有人不是为了利益或者权力。
JAVA 靠 JVM 做起来了,JVM 觉得 Java一定要靠着他,而 Java 改了 他可能会死,但是不改肯定会死。
隔壁 K8S 不也是 靠 Docker 联合起一种大厂整起来的,然后呢? 去Docker 化运动 不也是他 喊得 最带劲,
“来者不善啊。”
“你,才是来者。”
先清除 docker 在k8s的残余势力和特权以及一切不平等条约,再考虑与docker 建立关系的问题
K8s 宣布废弃使用 Docker,而改用 Containerd。其实除了这些商业因素,另一方面 K8s 已经提供了标准接口对接底层容器运行时,不再想单独维护一个 类似于 Docker shim 的适配层去迎合不同的运行时,这样做也无可厚非(其实我看就是自己做大了,把锅扔给底层了
巨头们成立了 CNCF 去对抗 Docker 公司的一家独大,CNCF 成立的思路很明确:在容器领域干不过 Docker,那就搞容器上层的建设——容器编排,从此 K8s 诞生了。虽然 Docker 公司也尝试使用 Swarm 去对抗 K8s,但最终也失败了。
然后 Docker 公司耍了个小聪明,将自己的核心依赖 Containerd 捐给了 CNCF,以此来标榜 Docker 是一个 PaaS 平台。
很明显,这个小聪明又大大加速了自己的灭亡。
Docker 也能和自己愉快地玩耍,温水煮青蛙,养肥了再杀。。。
开源嘛,K8S上任,得巧立名目,拉拢豪绅大厂,缴税捐款大家都开源。他们交了,才能让百姓跟着交钱,Docker 才能把 Containerd 交出去。得钱之后,豪绅的钱如数奉还,百姓的钱三七分成!
事后来看,Docker 还是像 OFO 创始人戴维 那样,不接受任何大厂的收编,最后一切都成了一场梦,自己被无期限 限制消费,客户退押金的队伍也排到了 2699年。
历史总是会重演,太阳底下无新事
说完 docker 和 k8s 再扭过头来,看服务网格这边
鼻祖是 Linkerd,设计研发了多少年我们无从知晓,只知道他万万不该选 依赖JVM 的Scala 语言。
JVM 是谁? 传统时代下称王称霸的跨平台 虚拟机,当初皇上身边的红人er,所有的字节码文件都要听他指挥 才能执行,隔了好几层,能用是能用 就是太慢了。
为啥没有推翻它?十几年都没有一个新的语言 挑战 Java 和 JVM 你不想想
人家几代人的努力,凭什么输给你十年寒窗苦读。
Java 的生态在在那个年代可以说是多么完善,就算是现在也是 个顶个的大家族,特别是Spring 那一支。称得上是 草原一吱花。
想要什么就能 给你什么,“给我一‘吱’雄鹰”、“给我一‘呲’邂逅”
无论是 高效开发 开疆扩土的 SpringBoot 还是 还是 自己做安全的 Spirng Security 甚至是微服务这边 SpirngCloud 也是 广泛的涉猎。
为什么没有人 撼动 黄老爷Java 和 Spring 的家业,鹅城另外两大家族 莫非就是 Python 和 C 了
谁是那个新兴 我们 不得而知
Java 就算是 没了,市场也会 交给 C 他们
回到这个话题,Linkerd 把 服务网格做出来,发扬光大,辉煌也仅仅是那一刻
眼看他起朱楼 眼看他宴宾客 眼看他楼塌了
Linkerd 开源出来,大家备受热捧,王者的宝座还没坐稳,半年后,Envoy 就用C++ 重新整了一套 一样的,推翻了 Envoy。
更快的启动时间,更少的内存消耗,人民用脚投票,选择了 Envoy,而 Linkerd ,成了时代的眼泪,毕竟这个市场 只能有一个 王者。
Envoy知道,他毕竟是个创业公司,是个新得势的小王爷,尽快便和 最得势的new money G家 Google 和 互联网老兵 IBM 这个 old money 结成了联盟,有这些新旧两大势力的大佬罩着至少生存下去是没有问题了。
次年九月,开源共产主义的新兴,nginx 也加入了这场 战争,他是通信领域的独角兽,流量转发的花魁,吸取了 Linkerd 的教训,带着 C语言 开发的 ninmEesh 粉墨登场,毕竟不是大公司 有财力物力 堆开发,上996的人海战术,007的敏捷更新,败了,还是败了。。。
同年12月,Linkerd,投靠了 Rust 阵营,团结一切能团结的力量,打扫完屋子再请客,带着第二代的 Linkerd2 重新登场。至于后续发展如何,还是要看他的造化了。
18年的 阿里把他们内部的MOSN 推了出来,Golang实现的 它在 双十一这场大仗中 经受住了考验,2019年也加入了 CNCF 这个大组织 和 Linkerd2 Envoy 以及 Docker K8S 他们共同孵化成长。
战争结束了吗?或许是的,又或许没有,技术世界的格局一直在演进,从单体到分布式,又到云原生集群,再回到 网格时代。。。 时间一直推着技术往前走。
旧的格局被打破了,新的格局还会出现。
没有银弹,这一切还在继续。
回到Redis 公平! 公平 ! 还 TMD 是公平!
本来是要讲,Reids 的结果 越扯越远,就顺着写下来了,
本来是想 聊聊 今天学的 Redis 他的 过期算法 LRU 和 LFU 还有 集群们 哨兵的 心跳检测 以及 虚拟槽 分片这里的 事情,这里面蕴含着很多的 道理,是绝对的公平还是相对的公平,这一切都不好说。
由于篇幅原因 还是留到 下一篇 再继续
最后的BB
事情也就是这么回事,故事纯属虚构,如有巧合是在太巧。
懂得人也就会心一笑,不懂得笑笑也就过去了。
我直呼我直呼,上次看到这么这么的发言还是上次,
这评论属于是典型的典型了属于是,
我之前还没发现,当我发现的时候我已经发现了,
这评论就像一个评论,
评论的内容充满了内容,
我不禁感慨了一句感慨,
真是听君一席话,如听一席话,
希望下次看到这么这么的发言是下次
这篇文章 没什么深刻地 含义
也仅仅是我这周 学习的大乱炖 罢了。
列一个引用的清单吧。
以上是关于开源轶事00Redis 是亲生的懒汉 Java 庶出终归是庶出的主要内容,如果未能解决你的问题,请参考以下文章