原创 redis(八):redis實現分佈式鎖的兩種方式

在分佈式系統中,如果多個節點同時操作同一個數據,會造成數據不一致的問題。和多個線程對共享變量進行操作遇到的問題一樣。 在java多線程中,一般會對操作共享數據的代碼進行加鎖,java提供了synchronized關鍵字可以很方便實

原创 redis(六):redis主從複製

1.概述 redis的主從複製實現多個數據庫之間的數據同步。一類是主數據庫(master)一類是從數據庫(slave),主數據庫可以進行讀寫操作,當發生寫操作的時候自動將數據同步到從數據庫,而從數據庫一般是隻讀的(可以通過配置文件配置,使

原创 java自定義LinkedList:實現單向鏈表的增刪改查和反轉

單向鏈表的節點由兩部分組成,一個是值,一個是下一個節點的引用(指針)。 其數據在內存中存儲是不連續的,它存儲的數據分散在內存中。 單向鏈表向外暴露的只有一個頭節點(Head),對鏈表的所有操作,都是直接或者間接地通過其頭節點來進行的。 添

原创 java自定義HashMap

HashMap的數據結構是數組+鏈表,之前的博客中有自定義的數組列表和鏈表,這裏的數組和鏈表就是使用之前自定義的數組列表和鏈表。 實現的方法有put(K k,V v),get(K k),clear(),containsKey(K k),r

原创 redis(七):redis分佈式算法

1.傳統分佈式算法 假設有4個redis節點,分別是redis0,redis1,redis2,redis3;有20個數據,這20個數據需要儘可能均勻地存儲在這4個redis節點上。傳統的做法是:將這20個數據(key)進行hash運算(如

原创 java實現自定義ArrayList

通過數組實現了基本的增刪改查,通過了基本的測試,但沒有進行更嚴格的測試,沒有考慮併發。 public class MyArrayList<E> implements Iterable<E> { //ArrayList<Stri

原创 併發工具類:CountDownLatch,Semaphore,CyclicBarrier,Exchanger簡單使用

public class ConcurrentTest { private static int THREAD_COUNT=10; private static ExecutorService threadPool=Executor

原创 Spring cloud之服務治理:Spring cloud Eureka

Spring cloud中的服務治理,大致分爲兩部分:服務註冊,服務發現。 服務治理是微服務架構中最核心最基礎的模塊,主要用來實現各個微服務模塊之間的自動化註冊與發現。在傳統的架構中,隨着服務或者模塊原來越多,需要大量的靜態配置來維護實例

原创 客戶端負載均衡:Spring Cloud Ribbon

Spring Cloud Ribbon是一個基於http和tcp的客戶端負載均衡工具,基於Netflix Ribbon實現。Spring Cloud Ribbon雖然是Spring cloud的一個組件,但不需要像註冊中心,配置中心等獨立

原创 ReentrantLock簡單介紹和使用ReentrantLock實現生產者消費者模式

/** * 1,ReentrantLock和synchronized都是可重入鎖,Reentrant的本意就是“可重入的”。可重入鎖顧名思義,就是在擁有鎖的情況下可以調用其它需要本鎖的方法或者代碼塊 * (同一個鎖對象) *,2

原创 使用wait和notify實現生產者消費者模式

package ProducerAndConsumer; import java.util.ArrayList; import java.util.List; /** * 1,線程中的wait,notifyAll和notify方法

原创 Java多線程之Callable、Future、FutureTask

package Thread; import java.util.Scanner; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorS

原创 Mysql存儲引擎選擇

InnoDB:如果要提供提交,回滾和崩潰恢復能力的事務安全(ACID兼容)能力,並要求實現併發控制,InnoDB是個很好的選擇。 MyISAM:如果數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率;

原创 mysql知識點整理

1.Mysql版本 目前主流的版本是5.x, 5.0-5.1:版本4的延續,是對版本4的升級維護,5.4-5.x:mysql整合了三方公司的新存儲引擎。 2. mysql 核心目錄(linux) /var/lib/mysql :

原创 mysql索引

索引是一種用於快速查詢行的數據結構,是SQL優化最簡單也最重要的方式。 1.B-Tree 索引 最常見的一種索引,InnoDB,MyISAM,Memory這三種引擎都支持B-Tree索引。 索引的本質是一種數據結構。B-Tree索引使用的