起源
今天復習了一下 Redis 的知識點,去年的面經里 Redis 還只存在 大佬的SSSSSSP面經中,如今面試,人人都要 說上兩嘴 Redis,成了八股文中 極其耀眼的一股,可以說 Redis 現在是 如日中天.
不過大家寫專案真的 除了 MySQL 還 都引入了Reids 嗎?
真究竟是 一股 新勢力,還是 惡勢力,還是要 騎驢看唱本,走著瞧,
文章目錄
- 起源
- 皇親國戚-Reids 的本家 ANSI C
- Java 你還要死撐多久?
- 農夫與蛇 ,JVM 和 Java ,Docker 和K8S
- 歷史總是會重演,太陽底下無新事
- 眼看他起朱樓 眼看他宴賓客 眼看他樓塌了
- 回到Redis 公平! 公平 ! 還 TMD 是公平!
- 最后的BB
皇親國戚-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
事情也就是這么回事,故事純屬虛構,如有巧合是在太巧,
懂得人也就會心一笑,不懂得笑笑也就過去了,
我直呼我直呼,上次看到這么這么的發言還是上次,
這評論屬于是典型的典型了屬于是,
我之前還沒發現,當我發現的時候我已經發現了,
這評論就像一個評論,
評論的內容充滿了內容,
我不禁感慨了一句感慨,
真是聽君一席話,如聽一席話,
希望下次看到這么這么的發言是下次
這篇文章 沒什么深刻地 含義
也僅僅是我這周 學習的大亂燉 罷了,
列一個參考的清單吧,
- 電影《讓子彈飛》
- 參考書籍鳳凰架構
- 參考書籍紅樓夢
- 參考書籍甄嬛傳
- 參考書籍毛選
- 參考書籍浪潮之巔
- 參考牛客Java面試寶典【Redis章節】
- 參考 我自己編的內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290072.html
標籤:java
上一篇:JVM 君,你是不是過分了???



