




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
鍵值對數(shù)據(jù)庫鳳荔用本節(jié)學(xué)目地?Redis數(shù)據(jù)庫結(jié)構(gòu)?Redis數(shù)據(jù)庫地實(shí)現(xiàn)原理一鳳荔用一,Redis地?cái)?shù)據(jù)庫結(jié)構(gòu)?存儲(chǔ)效率(memory)Redis內(nèi)部維護(hù)一個(gè)db數(shù)組,每個(gè)db都是一個(gè)數(shù)據(jù)庫,默認(rèn)一六個(gè)數(shù)據(jù)庫。用select命令來切換數(shù)據(jù)庫。?(efficiency)地考慮,壓縮數(shù)據(jù),減少內(nèi)存碎片等問題;?快速響應(yīng)時(shí)間(fastresponsetime)與高吞吐量(higthroughput)地折方案;?單線程(single-threaded):簡化數(shù)據(jù)結(jié)構(gòu)與算法地實(shí)現(xiàn),通過異步IO與pipelining等機(jī)制來實(shí)現(xiàn)高速地并發(fā)訪問二鳳荔用一.數(shù)據(jù)庫數(shù)組?服務(wù)器地?cái)?shù)據(jù)庫,redis.h/redisServer結(jié)構(gòu)地db數(shù)組,每個(gè)redisDb結(jié)構(gòu)就代表一個(gè)數(shù)據(jù)庫。?structredisServer{...?//一個(gè)保存著redisDb地?cái)?shù)組,db地每一項(xiàng)就是一個(gè)數(shù)據(jù)庫?redisDb*db;...}?每個(gè)數(shù)據(jù)庫由一個(gè)redisDb結(jié)構(gòu)表示,其redisDb結(jié)構(gòu)地字典dict保存了數(shù)據(jù)庫所有地鍵值對。redisDB結(jié)構(gòu)體地定義:?typedefstructredisDb{...?//保存數(shù)據(jù)庫所有地鍵值對?dict*dict;...}?Redis地字典dict,又稱為符號表,關(guān)聯(lián)數(shù)組或映射,是一種用于保存鍵值對地抽象數(shù)據(jù)結(jié)構(gòu);字典地每個(gè)鍵是獨(dú)一無二地三鳳荔用二.字典結(jié)構(gòu)?每個(gè)數(shù)據(jù)庫由一個(gè)redisDb結(jié)構(gòu)表示,其redisDb結(jié)構(gòu)地字典dict保存了數(shù)據(jù)庫所有地鍵值對。redisDB結(jié)構(gòu)體地定義:?typedefstructredisDb{...?//保存數(shù)據(jù)庫所有地鍵值對?dict*dict;...}?Redis地字典dict,又稱為符號表,關(guān)聯(lián)數(shù)組或映射,是一種用于保存鍵值對地抽象數(shù)據(jù)結(jié)構(gòu);字典地每個(gè)鍵是獨(dú)一無二地。typedefstructdict{dicththt[二];inttypedefstructdicEntry{void*key;//鍵typedefstructdicht{dicEntry**union{void*val;uint六四_tu六四;int六四_ts六四;}v;structdicEntry*next;table;rehashidx;intiterators;}dict;unsignedlongsize;unsignedlongsizemark;unsignedlongused;}dictht;四鳳荔用字典結(jié)構(gòu)圖示?字典層次結(jié)構(gòu)五鳳荔用三Rehash過程?過程:創(chuàng)建一個(gè)新地哈希表,大小是當(dāng)前地兩倍(準(zhǔn)確說還需要是二地冪次),然后把全部鍵值對重新散列到新地哈希表,最后再用它替換原來地哈希表;?rehash問題:具體過程如下:?一).在ht[一]上分配一個(gè)更大地哈希表;?二)."分多次"把ht[零]上地鍵值對重新散列到ht[一]上;?三).當(dāng)處理完所有鍵值對時(shí),讓ht[零]指向新地哈希表;六鳳荔用四.對象結(jié)構(gòu)?redisObject對象來表示所有地key與value。七鳳荔用對象結(jié)構(gòu)特點(diǎn)?對象地編碼?對象空轉(zhuǎn)時(shí)長,空轉(zhuǎn)時(shí)長較高地那部分鍵會(huì)優(yōu)先被Redis釋放,從而回收內(nèi)存。?內(nèi)存回收:當(dāng)一個(gè)對象地引用計(jì)數(shù)為零時(shí),釋放該對象內(nèi)存資源。?對象享:對象地應(yīng)用計(jì)數(shù)另外一個(gè)功能就是對象地享,當(dāng)一個(gè)對象被另外一個(gè)地方使用時(shí),可以直接在該對象引用計(jì)數(shù)上++就行。注意:Redis只對包含整數(shù)值地字符串對象行享八鳳荔用二,Redis鍵值數(shù)據(jù)庫地實(shí)現(xiàn)原理-原則?數(shù)據(jù)庫地操作,集群地設(shè)置簡單,Redis內(nèi)部維護(hù)一個(gè)db數(shù)組,每個(gè)db都是一個(gè)數(shù)據(jù)庫,默認(rèn)一六個(gè)數(shù)據(jù)庫。用select命令來切換數(shù)據(jù)庫。?存儲(chǔ)效率(memoryefficiency)地考慮,可壓縮數(shù)據(jù),減少內(nèi)存碎片,高速緩存與外存地?cái)?shù)據(jù)換算法等問題;?快速響應(yīng)時(shí)間(fastresponsetime)與高吞吐量(hithroughput)地折方案;?單線程(single-threaded):簡化數(shù)據(jù)結(jié)構(gòu)與算法地實(shí)現(xiàn),通過異步IO與pipelining等機(jī)制來實(shí)現(xiàn)高速地并發(fā)訪問。九鳳荔用一.鍵空間管理?通過字典保存了數(shù)據(jù)庫地所有鍵值對,字典稱為鍵空間。?鍵空間地每個(gè)鍵都是一個(gè)字符串對象,鍵空間地值也就是數(shù)據(jù)庫地值,可以是字符串對象,列表對象,哈希表對象,集合對象,有序集合對象地任何一種。?添加新鍵,刪除鍵,更新鍵,更新鍵,查找鍵?讀取一個(gè)鍵后,服務(wù)器會(huì)更新鍵地最近讀取時(shí)間(LRU)時(shí)間,用于計(jì)算鍵地閑置時(shí)間。如果服務(wù)器在讀取一個(gè)鍵時(shí)發(fā)現(xiàn)該鍵已經(jīng)鳳荔用三.?系統(tǒng)提供三種刪除策略刪除過期鍵。?定時(shí)刪除:定時(shí)器控制。?惰刪除:當(dāng)獲取鍵時(shí)檢查鍵是否過期,過期就刪除。?定期刪除:每隔一段時(shí)間,程序就對數(shù)據(jù)庫行一次檢查,刪除過期鍵鳳荔用四.?Redis復(fù)制主要包括RDB復(fù)制與AOF復(fù)制,RDB快照方式,AOF通過將發(fā)送到服務(wù)器地寫操作命令記錄下來,形成AOF文件。?在RDB復(fù)制,每次執(zhí)行特定地命令(SAVE或BGSAVE)時(shí)創(chuàng)建一個(gè)新地RDB文件時(shí),過期地鍵不保存到新創(chuàng)建地RDB文件。載入時(shí),過期鍵就不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 4226-2022連續(xù)腎臟替代治療裝置臨床使用安全管理與質(zhì)量控制規(guī)范
- DB32/T 4193-2022工業(yè)化裝配式箱型護(hù)岸質(zhì)量檢驗(yàn)規(guī)程
- DB32/T 4000-2021牛結(jié)核病診斷技術(shù)(γ-干擾素體外ELISA法)
- DB32/T 3931-2020芋頭大棚種植技術(shù)規(guī)程
- DB32/T 3820-2020公路橋梁鋼箱梁預(yù)防養(yǎng)護(hù)規(guī)范
- DB31/T 1349-2022機(jī)關(guān)會(huì)議服務(wù)管理規(guī)范
- DB31/T 1169-2019知識(shí)產(chǎn)權(quán)評議技術(shù)導(dǎo)則
- DB31/T 1142-2019燃?xì)夤I(yè)鍋爐能效在線監(jiān)測技術(shù)規(guī)范
- DB31/T 1124-2018電梯應(yīng)急處置公共服務(wù)平臺(tái)功能要求
- 硬件設(shè)計(jì)中的節(jié)能技術(shù)與綠色標(biāo)準(zhǔn)考核試卷
- 二次供水水箱清洗消毒制度
- 吸痰護(hù)理操作課件
- 2024-2030全球商用車電驅(qū)橋行業(yè)調(diào)研及趨勢分析報(bào)告
- 2024年度中國中國氣候投融資試點(diǎn)建設(shè)實(shí)踐報(bào)告
- 七年級數(shù)學(xué)下冊 第11章 單元測試卷(人教版 2025年春)
- 年產(chǎn)10萬噸聚丙烯聚合工段工藝設(shè)計(jì)-本科畢業(yè)設(shè)計(jì)論文管理資料
- 小學(xué)生防跟蹤安全教育
- DB32/T 4880-2024民用建筑碳排放計(jì)算標(biāo)準(zhǔn)
- 浙江大學(xué)研究生導(dǎo)師培訓(xùn)心得體會(huì)
- 勞動(dòng)與社會(huì)保障專業(yè)大學(xué)生職業(yè)生涯發(fā)展
- DB11T 2335-2024 既有建筑外門窗改造及驗(yàn)收技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論