原创 Redis底層詳解(五) 壓縮列表

一、壓縮列表概述        壓縮列表是一種編碼過的“鏈表”旨在實現高效的內存管理。它可以存儲整數和字符串,整數以小端序存儲,字符串則以字節數組存儲。壓縮列表的內存存儲結構如下圖所示:        其中zlbytes、zltail

原创 Redis底層詳解(四) 整數集合

一、集合概述         對於集合,STL 的 set 相信大家都不陌生,它的底層實現是紅黑樹。無論插入、刪除、查找都是 O(log n) 的時間複雜度。當然,如果用哈希表來實現集合,插入、刪除、查找都可以達到 O(1)。那麼爲什麼

原创 Redis底層詳解(三) 內存管理

一、內存分配概述         redis 的內存分配,實質上是對 tcmalloc / jemalloc 的封裝。內存分配本質就是給定需要分配的大小,以字節爲單位,然後返回一個指向一段分配好的連續的內存空間的首指針。        

原创 字節序

字節序         最近在看 redis 的內存編碼,裏面涉及到字節序相關的內容。這裏就當複習一下,做個簡單的回顧。         數據存儲在內存中,是以字節爲單位的,如果是單字節數據(如char、unsigned char、int

原创 Linux 下 Apache 的安裝與配置

1、安裝APR (Apache Portable Runtime) wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz tar -zxf apr-1.4.5.tar.gz c

原创 linux 的 mysql 安裝

一、mysql 安裝        1、下載        版本選擇5.6.33,linux環境,centos6.8。 wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.

原创 rsync文件同步

目錄 一、rsync 簡介 二、rsync 下載、安裝 三、rsync 服務器端部署 四、rsync 客戶端上傳文件 五、參考資料   一、rsync 簡介        rsync 用於兩臺主機間的文件同步,需求是內網可以訪問外網,但是

原创 夜深人靜寫算法(七)- 線段樹

目錄 一、引例       1、區間最值       2、區間求和 二、線段樹的基本概念      1、二叉搜索樹      2、數據域      3、指針表示      4、數組表示 三、線段樹的基本操作  

原创 夜深人靜寫算法(十二)- 模擬退火

一、引例        1、函數最值        函數最值分爲函數最大值和函數最小值,最小值即定義域內函數的最小值,最大值即定義域內函數的最大值。函數最大(小)值的幾何意義爲函數圖像的最高(低)點的縱座標。        那

原创 夜深人靜寫算法(四)- 最短路和差分約束

目錄   一、引例       1、一類不等式組的解 二、最短路       1、Dijkstra       2、圖的存儲       3、鏈式前向星       4、Dijkstra + 優先隊列       5、Bellma

原创 【數學專題】(一) 中國剩餘定理

中國剩餘定理,求的是模線性方程組的通解,如圖1所示,其中(mi, ai)都是已知量,x是未知量。需要求的就是x,讓它滿足以下n個等式: 圖1 舉個最簡單的例子,如圖2所示,x滿足三個同餘方程,我們可以將三個方程進行一個轉化

原创 samba本地映射配置

目錄  一、安裝samba二、關閉防火牆      1、windows防火牆      2、selinux防火牆三、配置samba      1、設置工作組      2、增加用戶配置      3、增加系統賬號      4、設置文件夾

原创 【字符串專題】(一) Manacher算法

迴文子串         迴文分爲奇數迴文和偶數迴文,即字符串的長度爲奇數還是偶數。其實只需要討論奇數的情況,即以某個字符爲中心,左右兩邊的字符按照中心對稱的情況(偶數的情況可以通過本文末尾的方法轉換成奇數的情況)。 最長迴文子串  

原创 Redis底層詳解(一) 哈希表和字典

一、哈希表概述        首先簡單介紹幾個概念:哈希表(散列表)、映射、衝突、鏈地址、哈希函數。        哈希表(Hash table)的初衷是爲了將數據映射到數組中的某個位置,這樣就能夠通過數組下標訪問該數據,提高數據的查找

原创 【數學專題】(二) Burnside引理和Polya定理

Burnside引理   筆者第一次看到Burnside引理那個公式的時候一頭霧水,找了本組合數學的書一看,全是概念。後來慢慢從Polya定理開始,做了一些題總算理解了。本文將從最簡單的例子出發,解釋Burnside引理和Polya定