原创 redis基本數據結構之ZSet

介紹: ZSet數據結構類似於Set結構,只是ZSet結構中,每個元素都會有一個分值,然後所有元素按照分值的大小進行排列,相當於是一個進行了排序的鏈表。 如果ZSet是一個鏈表,而且內部元素是有序的,在進行元素插入和刪除,以及查詢

原创 Redis之事務實現

Redis中的事務提供了一種將多個命令請求打包,然後一次性、順序性執行多個命令的機制,並且在事務指向期間,服務器不會中斷事務而改去執行其他客戶端的命令請求,它會將事務中的所有命令都執行完畢,然後纔去處理其他客戶端的請求。 Redi

原创 徹底搞清楚分佈式數據庫

1. 首先,“分佈式”:是從業務的角度的概念。 "分佈式”是從業務角度出發的:即當我們想着“註冊”模塊需要更新或者出問題了,那麼我們不希望它影響存量用戶的“登陸”和“下單”模塊,這個時候,我們多希望他們不在一起多好,那麼當我們真的

原创 遞歸回溯中的一些套路

從一個題說起 leetcode 39. 組合總和 class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target)

原创 Java 8對CAS機制的優化

但是這個CAS有沒有問題呢?肯定是有的。比如說大量的線程同時併發修改一個AtomicInteger,可能有很多線程會不停的自旋,進入一個無限重複的循環中。這些線程不停地獲取值,然後發起CAS操作,但是發現這個值被別人改過了,於是再

原创 spring事務的傳播機制新解

以下是事物的傳播機制: @Transactional(propagation=Propagation.REQUIRED) 如果有事務, 那麼加入事務, 沒有的話新建一個(默認情況下) @Transactional(propagat

原创 RocketMQ專題

1、安裝RocketMQ 環境要求 Linux 64位操作系統 64bit JDK 1.8+ 1.1下載 http://rocketmq.apache.org/release_notes/release-notes-4.4.0/

原创 MySQL全文索引-fulltext

MySQL 5.6 之前的版本只有MyISAM存儲引擎支持全文索引,5.6 及之後的版本,InnoDB 纔開始支持。全文索引相對於like %這種模糊查詢效率更高,查詢方式更多樣,查詢結果也更準確。在全文檢索領域,全文索引功能非常

原创 Spring IOC 容器源碼分析 - 獲取單例 bean

public Object getBean(String name) throws BeansException { // getBean 是一個空殼方法,所有的邏輯都封裝在 doGetBean 方法中 retur

原创 幾種限流算法

漏桶算法 思路很簡單,請求先進入到漏桶裏,漏桶以固定的速度出水,也就是處理請求,當水加的過快,則會直接溢出,也就是拒絕請求,可以看出漏桶算法能強行限制數據的傳輸速率。 該算法很好的解決了時間邊界處理不夠平滑的問題,因爲在每次請求進

原创 ZAB協議

zookeeper依賴zab協議來實現分佈式數據一致性.基於該協議,zookeeper實現了一種主備模式的系統架構來保持ZooKeeper爲高可用的一致性協調框架,自然的ZooKeeper也有着一致性算法的實現,ZooKeeper

原创 腦裂是什麼?Zookeeper是如何解決的?

什麼是腦裂 腦裂(split-brain)就是“大腦分裂”,也就是本來一個“大腦”被拆分了兩個或多個“大腦”,我們都知道,如果一個人有多個大腦,並且相互獨立的話,那麼會導致人體“手舞足蹈”,“不聽使喚”。 腦裂通常會出現在集羣環境

原创 SpringBoot項目如何改成https協議

keytool -genkeypair -alias "test2" -keyalg "RSA" -keystore "test.keystore" 輸入密鑰庫口令: 再次輸入新口令: 您的名字與姓氏是什麼? [Unkn

原创 用註解過濾序列化字段

有時候我們在打日誌的時候,希望對象中有些字段不顯示出來,此時可以考慮自定義一個註解。 比如,自定義一個註解GsonIgnoreField如下 @Target(ElementType.FIELD) @Retention(Retent