字典定義
字典,又稱為符號表(symbol table)、關聯陣列(associative array)或對映(map),是用於儲存鍵值對的抽象資料結構。
字典中的鍵值對
字典中的每個鍵都是獨有的,程式可以在字典中根據鍵查詢與之關聯的值(用鍵查值),通過鍵來更新值,通過鍵刪除整個鍵值對等。
redis中的字典實現
字典是一種常用資料結構在高階程式語言中一般會內建,redis使用的c沒有內建這種資料結構,故構建了自己的字典實現。
字典在redis中的應用
redis的資料庫是使用字典來作為底層實現的,對資料庫的增刪改查都是構建在對字典的操作之上的。
示例:
在資料庫中建立乙個鍵為「msg」 值為「hello world」的鍵值對,這個鍵值對就儲存在了代表資料庫的字典裡面。
字典也是雜湊鍵的底層實現之一,當乙個雜湊鍵包含的鍵值對比較多,或者鍵值對的元素都是比較長的字串時,redis就會使用字典作為雜湊鍵的底層實現。
這裡和鍊錶的應用有異曲同工之妙。
(鍊錶——列表鍵,字典——雜湊鍵)。
示例:website是乙個包含10086個鍵值對的雜湊鍵,這個雜湊鍵的鍵都是一些資料庫的名字,值是資料庫的主頁**。
website鍵的底層實現就是乙個字典,字典中包含10086個鍵值對。
《Redis設計與實現》 第四章 雜湊演算法
雜湊演算法 要想把乙個新的鍵值對新增到字典裡,程式首先需要根據鍵值對的鍵計算出雜湊值和索引值。然後根據索引值將包含新鍵值對的雜湊表節點放到雜湊表陣列的指定索引上面。redis計算雜湊值和索引值的方法 計算雜湊值 字典設定的雜湊函式 hashfunction key 它是dicttype結構中儲存的函...
Python第四章 字典
字典是python中唯一內建的對映型別,字典中的值並沒有特殊順序,但是都是存在乙個特定的鍵裡。鍵可以是數字 字串甚至是元組。4.1 4.2 了解建立和使用字典 phonebook alice 2345 phonebool asd traceback most recent call last fil...
Linux核心設計與實現 第四章
多工多工系統可以劃分為搶占式多工和非搶占式多工。程序在被搶占之前能夠執行的時間叫時間片。linux採用的就是搶占式多工 io消耗型程序 頻繁處於可執行狀態但是只執行很短的時間。處理器消耗型 時間大多用在執行 上,系統盡量降低其排程頻率而延長執行時間。程序排程要在兩個排程之間尋求平衡 響應時間短和最大...