原创 面試題:爲什麼上一個網頁卡頓或者上不上去?

最近學習redis的時候發現,redis緩存更新的時候會遇到這種情況。然後又思考了一下之前學過的東西,就簡單的三點,寫一下吧 和數據庫相關的原因: 電腦首頁經常進行定時任務刷新緩存,可能電商網頁的大量數據失效時間比較集中,如果失

原创 【Linux】session和cookie的底層原理

session 和 cookie 的底層原理 session和cookie的簡單介紹 cookie 的出現是因爲 HTTP 是無狀態的一種協議,也就說,服務器記不住你,可能你每刷新一次網頁,就要重新輸入一次賬號密碼進行登錄。這顯然

原创 Redis數據庫學習筆記一 Redis的簡介

NoSQL簡介 NoSQL(Not relational SQL)有多種解釋,其中的一種意思是"非關係SQL", NoSQL數據庫沒有一個統一的架構,沒有同一種標準。兩種NoSQL數據庫之間的不同,甚至遠遠超過兩種關係型數據庫的不

原创 【C++】C++11之智能指針

智能指針爲什麼C++11要提出智能指針的概念?智能指針的使用及其原理智能指針的發展歷史auto_ptrauto_ptr的簡易版模擬實現auto_ptr的完整版模擬實現unique_ptrunique_ptr的模擬現實shared_

原创 【Linux】TCP的擁塞控制

TCP的擁塞控制擁塞控制原理TCP擁塞控制的方法TCP擁塞控制算法慢開始擁塞避免算法快重傳算法快恢復算法:四種算法的實現舉例 擁塞控制原理 擁塞: 在某段時間,若對網絡中資源(帶寬、交換節點緩存,處理機)的需求超過了該資源所能提供

原创 【Linux】輸入一個網址按下回車後會發生什麼過程

輸入一個網址後,按下回車後的過程 當你在瀏覽器輸入一個網址,如http://www…baidu.com,按回車之後發生了什麼? 總體過程的分析: DNS域名解析 — 域名解析流程 搭建tcp客戶端 根據http協議格式

原创 【Linux】進程與線程的聯繫與區別

線程與進程的聯繫與區別: 進程的概念: 進程又稱作任務,進程就是一個運行中程序的描述-pcb(進程控制塊),linux下的pcb實際上是一個結構體,tack_struct結構體,描述一個程序的各種信息。對於操作系統來說,進程就是一

原创 【Linux】死鎖的產生與預防

死鎖: 死鎖的概念: 多個線程對鎖資源爭搶訪問,但是因爲推進順序不當,導致相互等待,造成程序無法繼續,這就是死鎖。 死鎖的產生原因 系統資源不足:系統中所擁有的資源數量不滿足多個線程的需要,使得在鎖哥線程運行的過程中,因爭奪資源

原创 【項目】高併發內存中間件(TCMalloc)

高併發內存中間件項目簡介:ThreadCache簡單介紹:CentralCache簡單介紹:PageCache簡單介紹:ThreadCache層的設計:結構:ThreadCache層的接口設計:ThreadCache層的內存申請與

原创 【Linux】進程的虛擬地址空間

進程的虛擬地址空間進程虛擬地址空間的含義:進程的虛擬地址空間的作用:物理內存的離散式存儲,提高內存利用率保證了進程的獨立性,每一個進程都只能訪問自己虛擬地址映射的物理內存頁表可以進行內存的訪問控制,頁表可以對每個虛擬地址進行權限標

原创 【C++】vector類的模擬實現

vector類的模擬實現 vector的認識: vector是一個大小可以改變的序列式容器,也稱爲數組。也就是說vector是一段連續的空間來存儲數據。 同樣vector也有一系列的接口,我們要熟練使用vector的接口,首先要理

原创 【C++】string類的模擬實現

#include <iostream> #include <cassert> using namespace std; class String { public: typedef const char* const_Ite

原创 【C++】vector迭代器失效問題

vector迭代器失效問題 迭代器失效是什麼? 迭代器失效,是不能再去拿迭代器去訪問vector中的元素,此時的迭代器指向的這塊空間已經被釋放了,也就是說此時的迭代器已經是野指針了。 insert 可能會導致迭代器失效 當vect

原创 【算法】求子集(多解)

求子集 在所有子集中,生成各個字子集,例如 [1,2,3] 生成的子集中,[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]],就是是否選[1],是否選[2],是否選[3]的問題。 如果只使用循環的

原创 【算法】求累加和小於等於aim的最長的子數組(O(N)

題目描述: 給定一個數組arr,值可正,可負,可0;一個整數aim,求累加和小於等於aim的最長子數組,要求時間複雜度O(N) 算法思想: 數組arr: 【7,5 ,5 ,-3, -1】 剛開始的的時候我們要生成兩個數組,min_