Redis服務器是一個事件驅(qū)動程序,服務器需要處理以下兩類事件: 1.文件事件:Redis服務器通過套接字與客戶端進行連接,而文件事件就是服務器對套接字操作的抽象。 2.時間...
Redis服務器是一個事件驅(qū)動程序,服務器需要處理以下兩類事件: 1.文件事件:Redis服務器通過套接字與客戶端進行連接,而文件事件就是服務器對套接字操作的抽象。 2.時間...
RDB持久化通過保存數(shù)據(jù)庫中的鍵值對來記錄數(shù)據(jù)庫狀態(tài) AOF持久化是通過保存Redis服務器所執(zhí)行的寫命令來記錄數(shù)據(jù)庫狀態(tài)。 被寫入AOF文件的所有命令都是以Redis的命令...
Redis是一個鍵值對數(shù)據(jù)庫服務器,我們將服務器中的非空數(shù)據(jù)庫以及它們的鍵值對統(tǒng)稱為數(shù)據(jù)庫狀態(tài)。 Redis數(shù)據(jù)庫是內(nèi)存數(shù)據(jù)庫,它將自己的數(shù)據(jù)庫狀態(tài)存儲在內(nèi)存里,所以一旦服務...
主要內(nèi)容 1.服務器保存數(shù)據(jù)庫的方法 2.客戶端切換數(shù)據(jù)庫的方法 3.數(shù)據(jù)庫保存鍵值對的方法 4.針對數(shù)據(jù)庫保存增、刪、改、岔操作的實現(xiàn)方法。 5.服務器保存鍵的過期時間的方...
8.1對象的類型與編碼 Redis中的每個對象都由一個redisObject結(jié)構(gòu)表示,該結(jié)構(gòu)中和保存數(shù)據(jù)有關(guān)的三個屬性分別是type屬性、encoding屬性和ptr屬性: ...
壓縮列表是哈希鍵和列表鍵的底層實現(xiàn)之一。當一個列表鍵只包含少量的列表項,并且每個列表項要么就是小整數(shù)值,要么就是長度較小的字符串,那么Redis就會使用壓縮列表來做列表鍵的底...
整數(shù)集合是集合鍵的底層實現(xiàn)之一,當一個集合只包含整數(shù)值元素,并且這個集合的元素數(shù)量不多時,Redis就會使用整數(shù)集合作為集合鍵的底層實現(xiàn)。 6.1 整數(shù)集合的實現(xiàn) conte...
跳躍表是一種有序數(shù)據(jù)結(jié)構(gòu),它通過在每個節(jié)點中維持多個指向其他節(jié)點的指針,從而達到快速訪問節(jié)點的目的。 跳躍表支持平均O(logN),最壞O(N)復雜度的節(jié)點查找,還可以通過順...
字典在Redis中的應用相當廣泛,比如Redis的數(shù)據(jù)庫就是使用字典來作為底層實現(xiàn)的,對數(shù)據(jù)庫的增、刪、查、改操作也是構(gòu)建在對字典的操作之上的。 除了用來表示數(shù)據(jù)庫之外,字典...
2.1 SDS的定義 SDS的結(jié)構(gòu)體: int len//記錄buf數(shù)組中已使用字節(jié)的數(shù)列 int free;//記錄buf數(shù)組中未使用字節(jié)的數(shù)列 char buf[];//...
題目:輸入一個正整數(shù)數(shù)組,把數(shù)組里所有數(shù)字拼接起來排成一個數(shù),打印能拼接處的所有數(shù)字最小的一個。例如輸入數(shù)組{3,32,321},則打印出這3個數(shù)字能拍成的最小數(shù)字32132...
題目:輸入一個整型數(shù)組,數(shù)組里有正數(shù)也有負數(shù)。數(shù)組中一個或連續(xù)的多個整數(shù)組成一個子數(shù)組。求所有子數(shù)組的和的最大值。要求時間復雜度為O(n)
題目:輸入n個整數(shù),找出其中最小的k個數(shù)。例如輸入4、5、1、6、2、7、3、8這8個數(shù)字,則最小的4個數(shù)字是1、2、3、4. 思路一:如果允許修改數(shù)組,可采用Partiti...
題目:數(shù)組中有一個數(shù)字出現(xiàn)的次數(shù)超過數(shù)組長度的一半,請找出這個數(shù)字。例如輸入一個長度為9的數(shù)組{1,2,3,2,2,2,5,4,2}。由于數(shù)組2在數(shù)組中出現(xiàn)了5次,超過數(shù)組長...
題目:輸入一個字符串,打印出該字符串中字符的所有排列。例如輸入字符串a(chǎn)bc,則打印出由字符a、b、c所能排列出來的所有字符串a(chǎn)bc、acb、bac、bca、cab、cba。
題目:輸入一顆二叉搜索樹,將該二叉搜索樹轉(zhuǎn)換成一個排序的雙向鏈表。要求不能創(chuàng)建任何新的結(jié)點,只能調(diào)整樹中結(jié)點指針的指向。 思路:在轉(zhuǎn)換成雙向鏈表時,指向左子節(jié)點的指針調(diào)整為鏈...
題目:請實現(xiàn)函數(shù)ComplexListNode* Clone(ComplexListNode* pHead),復制一個復雜鏈表。在復雜鏈表中,每個結(jié)點除了有一個m_pNext...
題目:輸入一顆二叉樹和一個整數(shù),打印出二叉樹中結(jié)點值的和為輸入整數(shù)的所有路徑。從樹的根結(jié)點喀什往下一直到也節(jié)點所經(jīng)過的結(jié)點形成一條路徑。
題目:輸入一個整數(shù)數(shù)組,判斷該數(shù)組是不是某個二叉搜索樹的后續(xù)遍歷的結(jié)果。如果是則返回true,否則返回false。假設(shè)輸入的數(shù)組的任意兩個數(shù)字都互不相同。
題目:從上往下打印出二叉樹的每個結(jié)點,同一層的結(jié)點按照從左到右的順序打印。例如輸入圖4.5中的二叉樹,則依次打印出8,6,10,5,7,9,11