原创 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定