原创 Java併發編程之美筆記

1. wait()和notify()

原创 消息隊列高手課筆記

爲什麼要使用消息隊列?消息隊列的好處?用途? 消息隊列用來解決系統之間的通信問題,主要功能就是收發消息,使用消息隊列有幾個好處: ①解耦:減少了系統之間的依賴關係,如果在一個系統A中直接調用另一個系統B的接口,如果B執行失敗,A也

原创 LeetCode精選100題——第90題——子集 II

class Solution { public List<List<Integer>> subsetsWithDup(int[] nums) { ArrayList<List<Integer>> res=

原创 LeetCode精選100題——第83題——刪除排序鏈表中的重複元素

class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null){ return

原创 LeetCode精選100題——第86題——分隔鏈表

class Solution { public ListNode partition(ListNode head, int x) { ListNode dummyHead1=new ListNode(-1

原创 LeetCode精選100題——第92題——反轉鏈表 II

class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { ListNode cur=head;

原创 LeetCode精選100題——第88題——合併兩個有序數組

class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] nums1Copy=new int[m

原创 人人車實習面經

項目爲什麼做分佈式擴展 有什麼好處 怎麼優化session的?redis。在springboot中怎麼做的,具體怎麼實現的? 消息隊列原理 怎麼削峯的?(令牌桶) 還有別的削峯方法嗎(MQ) 怎麼解決超賣問題的 說下int和In

原创 Redis深度歷險筆記01 Redis數據結構

Redis所有的數據結構都是以唯一的key字符串作爲名稱,然後通過這個唯一的key來獲取響應的value數據。value有5種基礎數據結構,分別是string(字符串)、list(列表)、set(集合)、hash(字典)、zset

原创 Redis深度歷險筆記05 Redis線程模型、原理

Redis爲什麼是單線程的,Redis線程模型 Redis內部使用了文件事件處理器file event handle,這個文件事件處理器是單線程的,所以Redis被稱爲單線程的模型。它採用I/O多路複用機制監聽多個socket,

原创 Redis深度歷險筆記10 分佈式緩存可能出現的問題

一、緩存雪崩 我們設置緩存時採用了相同的過期時間,在同一時刻出現大面積的緩存過期。所有原本應該訪問緩存的請求都去查詢數據庫了,而對數據庫CPU和內存造成巨大壓力,嚴重的會造成數據庫宕機。從而形成一系列連鎖反應,造成整個系統崩潰。

原创 軟件安裝環境配置

1.下載jdk並安裝 下載地址:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 需要登陸Oracle賬號: Oracle帳號:26966712

原创 Redis深度歷險筆記02 Redis分佈式鎖

對鎖的理解?(待簡化) 在單進程的系統中,當存在多個線程可以同時改變某個變量(可變共享變量)時,就需要對變量或代碼塊做同步,使其在修改這種變量時能夠線性執行消除併發修改變量。 而同步的本質是通過鎖來實現的。爲了實現多個線程在一個

原创 Redis深度歷險筆記03 Bitmap位圖和HyperLogLog

Bitmap 位圖 位圖不是特殊的數據結構,它其實就是普通的字符串,也就是 byte 數組,用 getbit 和 setbit 來操作,能夠統計精確的值。 可以用於布爾型數據的存取,比如用戶一年的簽到記錄,簽到了是1,沒簽到是0

原创 Redis深度歷險筆記04 布隆過濾器、Scan、Geohash

布隆過濾器 使用場景: 可以應用來推薦系統中,過濾掉用戶已經看到的內容。 用戶請求數據庫數據時,可以先通過布隆過濾器,過濾掉對不存在數據的請求,減輕數據庫的壓力。 在項目的多級緩存之上,可以添加一個布隆過濾器,防止