原创 金九銀十面試前必須要知道的“21道Redis面試題”

1、使用redis有哪些好處? 速度快,因爲數據存在內存中,類似於HashMap,HashMap的優勢就是查找和操作的時間複雜度都是O(1)支持豐富數據類型,支持string,list,set,sorted set,hash支持事務,操作

原创 《用消息服務來提高微服務的可靠性》

前言: 過去,我們很容易通過:取出裸機服務器、安裝所有必需的軟件、添加所有應用代碼、將數據加載上去的一系列流程,來部署單體應用程序(monolithic application)。由於一切組件都集中在一臺服務器上,因此這種應用不但能夠處理較

原创 《集羣、限流、緩存 BAT 大廠無非也就是這麼做的》

前言 前陣子有網友詢問,如何優化網站?這個問題真的很大,跟他簡單的聊了一下,隨便說了幾點,覺得有必要整理一篇文章出來,正好前陣子在做爬蟲博客,於是把大體思路分享出來,與大家互通有無,共同進步。 優化 版本一 系統開始是這樣子的,一個 T

原创 《Tomcat和JVM的性能調優你真的學會了嗎?》總結篇

Tomcat性能調優: 找到Tomcat根目錄下的conf目錄,修改server.xml文件的內容。對於這部分的調優,我所瞭解到的就是無非設置一下Tomcat服務器的最大併發數和Tomcat初始化時創建的線程數的設置,當然還有其他一些性能調

原创 髒讀、幻讀和不可重複讀?爲啥?

前言: 一致性是指在事務開始之前和事務結束以後,數據庫的完整性約束沒有被破壞。這是說數據庫事務不能破壞關係數據的完整性以及業務邏輯上的一致性。例子: 對銀行轉帳事務,不管事務成功還是失敗,應該保證事務結束後ACCOUNT表中A和B的存款總額

原创 分享30道Redis面試題,面試官能問到的我都找到了

1、什麼是Redis?簡述它的優缺點?Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內存當中進行操作,定期通過異步操作把數據庫數據flush到硬盤上進行保存。因爲是純內存操作,Redi

原创 面對峯值響應衝擊,解決高併發的三大策略

當前在互聯網+的大潮下,衆所周知淘寶、京東這些交易系統每天產生的數據量都是海量的,每天的交易併發也是驚人的,尤其是“雙11”、“6.18”這些活動,對系統的峯值響應提出了非常高的要求,所以對系統架構也就有了很要的要求。在寫這篇博客的前2天,

原创 SpringCloud服務的平滑上下線

 吐槽:以前都是手擼RPC,最近接觸 SpringCloud ,深感痛心。主要有以下幾點:1)代碼量巨大,找BUG時間長,超級複雜的設計2)版本管理混亂,經常出現莫名其妙的配置錯誤(所以2.0是打死不敢上生產啊)3)Netflix公司的有些

原创 消息中間件—簡談Kafka中的NIO網絡通信模型

 摘要:很多人喜歡把RocketMQ與Kafka做對比,其實這兩款消息隊列的網絡通信層還是比較相似的,本文就爲大家簡要地介紹下Kafka的NIO網絡通信模型,本文主要通過對Kafka源碼的分析來簡述其Reactor的多線程網絡通信模型和總體

原创 併發編程—Java多線程總結

目錄先了解幾個概念多線程:進程和線程是一對多的關係,一個進程(一個程序),由不同的線程來運行。有共享的空間也有獨立的空間。並行: 同時進行,拿兩個cpu來跑同樣的程序同樣的代碼片段,那就並行了。併發:不同時進行,只有一個cpu,而多個線程都

原创 搞懂Java分佈式鎖實現看這篇文章就對了

 前言:隨着微處理機技術的發展,人們只需花幾百美元就能買到一個CPU芯片,這個芯片每秒鐘執行的指令比80年代最大的大型機的處理機每秒鐘所執行的指令還多。如果你願意付出兩倍的價錢,將得到同樣的CPU,但它卻以更高的時鐘速率運行。因此,最節約成

原创 分佈式系統消息中間件—RabbitMQ的使用進階篇

前言:這篇文章主要總結一下RabbitMQ在日常項目開發中比較常用的幾個特性。一。 mandatory 參數上一篇文章中我們知道,生產者將消息發送到RabbitMQ的交換器中通過RoutingKey與BindingKey的匹配將之路由到具體

原创 怎樣使用主流緩存更新策略來減少性能消耗?

 在互聯網項目開發中,緩存的應用是非常普遍了,緩存可以幫助頁面提高加載速度,減少服務器或數據源的負載。一、爲什麼需要緩存?一般在項目中,最消耗性能的地方就是後端服務的數據庫了。而數據庫的讀寫頻率常常都是不均勻分佈的,大多情況是讀多寫少,並且

原创 NIO與BIO的區別、NIO的運行原理和併發使用場景

NIO(Non-blocking I/O,在Java領域,也稱爲New I/O),是一種同步非阻塞的I/O模型,也是I/O多路複用的基礎,已經被越來越多地應用到大型應用服務器,成爲解決高併發與大量連接、I/O處理問題的有效方式。那麼NIO的

原创 帶你瞭解MySQL數據庫小技巧

 37 個 MySQL 數據庫小技巧!1、如何快速掌握MySQL?培養興趣興趣是最好的老師,不論學習什麼知識,興趣都可以極大地提高學習效率。當然學習MySQL 5.6也不例外。夯實基礎計算機領域的技術非常強調基礎,剛開始學習可能還認識不到這