書和緩存組總結(jié)師范學(xué)院信息技術(shù)提高_(dá)第1頁
書和緩存組總結(jié)師范學(xué)院信息技術(shù)提高_(dá)第2頁
書和緩存組總結(jié)師范學(xué)院信息技術(shù)提高_(dá)第3頁
書和緩存組總結(jié)師范學(xué)院信息技術(shù)提高_(dá)第4頁
書和緩存組總結(jié)師范學(xué)院信息技術(shù)提高_(dá)第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

版本歷 第一章、Redis簡 NoSQL數(shù)據(jù) 第二章、原 數(shù)據(jù)庫結(jié) 持久化機 ...................................................................................................................................10文件時間3.2的執(zhí)行與調(diào) 服務(wù) 載入配置文 創(chuàng)建daemon進(jìn) 載入數(shù) 開始循 1、地 1、啟動Redis服務(wù):服務(wù)器 第四章、與EJB集 2、實現(xiàn)(基于 第五章、與Spring集 一、目 二、結(jié) 四、redis的簡單介 五、使 第六章、itoo使用參 NotonlySql的縮寫,非關(guān)系型數(shù)據(jù)庫的統(tǒng)稱。包括四大類:key-value數(shù)據(jù)庫,列(MonoDb,CouchBNoSQL數(shù)據(jù)庫在以下的這幾種情況下比較適用:1、數(shù)據(jù)模型比較簡單;2、需要靈活I(lǐng)T系統(tǒng);3、對數(shù)據(jù)庫性能要求較高;4、不需要高度的數(shù)據(jù)一致性;5、對于給key,比較容易映射復(fù)雜值的環(huán)境。Memecached等緩存實現(xiàn)。--作,而且這些操作都是原子性的(事務(wù):MULTI、DISCARD、EXECWATCH。在此基礎(chǔ)上,redis支持各種不同方式的排序。redis會根據(jù)配置,周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記master-slave(主從)同步。Redisredis.h/redisDbiddictexpiresIdredis.h/redisServer.db數(shù)組中數(shù)據(jù)庫的個數(shù)。在每個數(shù)據(jù)庫的id為從0到REDIS_DEFAULT_DBNUM1SELECTnumber命令時,程序直接使用redisServer.db[number]來切換數(shù)據(jù)庫。Redis是一個鍵值對數(shù)據(jù)庫(key-valuepairsdatabase)spaceredisDbexpiresexpiresdict期時間,這個值以longlong類型表示。示例如下:Redis作為一種緩存數(shù)據(jù)庫,很多人都會問,redis宕機了怎么辦,會不會數(shù)據(jù)丟失?以下就分析Redis的持久化方案。Redis運行時,RDBRedis重啟動時,RDB程序可以通過載入RDBRDB功能最的是rdbSave和rdbLoad兩個函數(shù),前者用于生成RDB文件到磁盤,而后者則用于將RDB文件中的數(shù)據(jù)重新載入到內(nèi)存中。保存rdbSave負(fù)責(zé)將內(nèi)存中的數(shù)據(jù)庫數(shù)據(jù)以RDB格式保存到磁盤中,如果RDB文件已經(jīng)存在將會替換已有的RDBRDB文件期間會阻塞主進(jìn)程,這段時為避免主進(jìn)程阻塞,Redis提供了rdbSaveBackground函數(shù)。在新建的子進(jìn)程中調(diào)用rdbSave,保存完成后會向主進(jìn)程發(fā)送信號,同時主進(jìn)程可以繼續(xù)處理新的當(dāng)Redis啟動時,會根據(jù)配置的持久化模式,決定是否RDB文件,并將其中的對象保存到內(nèi)存中。載入RDB1000個鍵就處理一次已經(jīng)等待處理的客戶端請求,但是目前僅處理訂閱功能令(PUBLISH、SUBSCRIBE、PSUBSCRIBE、UNSUBSCRIBE、PUNSUBSCRIBE),其他一律返Redis數(shù)RDBredis.conf#save<seconds><changes>IORedisIORedisAOF文件,達(dá)到記到AOF程序中。緩存追加:AOF程序根據(jù)接收到令數(shù)據(jù),將命令轉(zhuǎn)換為網(wǎng)絡(luò)通訊協(xié)議的格式,然后將協(xié)議內(nèi)容追加到服務(wù)器的AOF緩存中。AOFaof_fsync(文件描述符號)將數(shù)據(jù)寫入到AOF文件末尾。RedisAOF_FSYNC_NO:不保存。此模式下,每執(zhí)行一條客戶端令,都會將協(xié)議server.aof_bufRedisAof系統(tǒng)寫緩存已滿,或定時保存操作被執(zhí)AOF_FSYNC_EVERYSECS:每一秒保存一次。由子進(jìn)程調(diào)用寫入保存,不AOF保存的是數(shù)據(jù)協(xié)議格式的數(shù)據(jù),所以只要將AOF中的數(shù)據(jù)轉(zhuǎn)換為命令,模AOF保存的文本,還原數(shù)據(jù)為原命令和原參數(shù)。然后使用模擬的客戶端繼續(xù)執(zhí)行第二步,直到完AOF文AOF需要將所有令都保存到磁盤,那么這個文件會隨著時間變得越來越大。也會變得很慢。Redis提供了AOF的重寫機制,幫助減少文件的大小。所謂重寫機制,比如客戶端分別是輸入了四條命令,redis經(jīng)過重寫后,會變成一條指令。也就是說RedisAOFAOFAOF重寫緩存。這樣AOF的寫入、重寫就做到了,保證了重寫時不會阻塞AOFRDBAOFRDBAOFfsync是Redis服務(wù)器的,它處理兩項重要的任務(wù)處理文件:在多個客戶端中實現(xiàn)多路復(fù)用,接受它們發(fā)來令請求,jobRedis服務(wù)器通過在多個客戶端之間進(jìn)行多路復(fù)用,從而實現(xiàn)高效令請求Redis服務(wù)器中,但只有在套接字可以無Redis將這類因為對套接字進(jìn)行多路復(fù)用而產(chǎn)生的稱為文件(fileevent),文件可以分為讀和寫兩類。3.1.1讀讀標(biāo)志著客戶端命令請求的發(fā)送狀態(tài)。當(dāng)一個新的客戶端連接到服務(wù)器時,服務(wù)器會給為該客戶端綁定讀,直到客戶端斷開連接之后,這個讀才會被移除。讀在整個網(wǎng)絡(luò)連接的生命期內(nèi),都會在等待和就緒兩種狀態(tài)之間切?當(dāng)客戶端只是連接到服務(wù)器,但并沒有向服務(wù)器發(fā)送命令時,該客戶端的讀?當(dāng)客戶端給服務(wù)器發(fā)送命令請求,并且請求已到達(dá)時(相應(yīng)的套接字可以無阻塞地執(zhí)行讀操作,該客戶端的讀處于就緒狀態(tài)。3.1.2寫寫標(biāo)志著客戶端對命令結(jié)果的接收狀態(tài)。和客戶端自始至終都關(guān)聯(lián)著讀事件,并且在命令結(jié)果傳送完畢之后,客戶端和寫的關(guān)聯(lián)就會被移除。一個寫會在兩種狀態(tài)之間切換:將保存在緩存內(nèi)令執(zhí)行結(jié)果返回給客戶端,這時服務(wù)器就會為客戶端關(guān)聯(lián)寫。時間記錄著那些要在指定時間點運行的,多個時間以無序鏈表的形式保存在服務(wù)器狀態(tài)中。每個時間主要由三個屬性組成:whenUNIX時間戳為單位,記錄了應(yīng)該在什么時間點執(zhí)行timeProc:處理函數(shù)next指向下一個時間,形成鏈表根據(jù)timeProc函數(shù)的返回值,可以將時間劃分為兩類如果處理函數(shù)返回ae.h/AE_NOMORE,那么這個為單次執(zhí)行事件:該會在指定的時間被處理一次,之后該就會被刪除,不再執(zhí)如果處理函數(shù)返回一個非AE_NOMORE的整數(shù)值,那么這個為循環(huán)執(zhí)行:該會在指定的時間被處理,之后它會按照處理函數(shù)的返回值,更新的when屬性,讓這個在之后的某個時間點再次運3.2的執(zhí)行與調(diào)既然Redis里面既有文件,又有時間,那么如何調(diào)度這兩種就成了一個關(guān)鍵問題。簡單地說,Redis里面的兩種呈合作關(guān)系,它們之間包一種會等待另一種執(zhí)行完畢之后,才開始執(zhí)行,之間不會出現(xiàn)處理器先處理文件(處理命令請求),再執(zhí)行時間(調(diào)文件的等待時間(類poll函數(shù)的最大阻塞時間),由距離到達(dá)時間最短的時間決定。這些屬性表明,實際處理時間的時間,通常會比時間所預(yù)定的時間要晚,至于延遲的時間有多長,取決于時間執(zhí)行之前,執(zhí)行文件所消耗要的就是將前面介紹過的各個功能模塊組合起來,而這些功能模塊面的章Redis,Redis(3)創(chuàng)建daemon進(jìn)程。(6)開 循環(huán)redis.h/redisServer結(jié)構(gòu)記錄了和服務(wù)器相關(guān)的所有數(shù)據(jù)。主要包括:所有數(shù)據(jù)庫、命令表、網(wǎng)絡(luò)連接信息、已連接客戶端信息、Lua運行環(huán)境及相關(guān)redisServerserverserver的各個屬性初始化為默認(rèn)值。server變量(也即是服務(wù)器狀態(tài))的各個己的要求配置服務(wù)器,Redis允許用戶在運行服務(wù)器時,提供相應(yīng)的配置文件(configfile)或者顯式的選項(option),Redisserverserver變量的屬性值做相redis-serveretc/my-redis.confport10086daemonRedisdaemon進(jìn)程的方式運行。當(dāng)服務(wù)器初始化進(jìn)行到這一步時,程序?qū)?chuàng)建daemon進(jìn)程來運行Redis,并創(chuàng)建相應(yīng)的pid文件。為serverRDBAOF文件里的數(shù)據(jù),載入到服務(wù)器進(jìn)程里面。AOFAOF文件來還原數(shù)據(jù);否則,程序使用RDB文件來還原數(shù)據(jù)。開始循到了這一步,服務(wù)器的初始化已經(jīng)完成,程序打開循環(huán),開始接受客戶端Rediswindowswindows的版本的。官網(wǎng)上1、地個人共享 reids-benchamark.exeNMSETS/GETSredis.confwarning文件名、存放、設(shè)置location命令:slaveof192.168.24.248主服務(wù)器添加字符串:setname從服務(wù)器上(我的電腦客戶端)取出字符串:getEJBAOP各個程序中去了。EJB中沒有像springaop一樣的完整的機制,但是可以借助器來實這里,EJB容器的作用就是識別標(biāo)志,然后交給器去處理,器在調(diào)用緩存1.引入Jedis2 這里主要的類是RedisManagerbyteCache再做了一層封裝,數(shù)據(jù)類型是String,面對用戶的。CacheInterceptorSpring需要把redis的客戶端交給容器來管理,并通過Spring的AOP機制切入。怎樣做才大致的結(jié)構(gòu)圖如上圖,我創(chuàng)建了三個自定義注解用于對Book類進(jìn)行,分別是MyAnnotationAdd,MyAnnotationDeleteMyAnnotationModify。三個注解的具體實現(xiàn)放MyAnnotationHandle中。簡單來說就是自定義注解+spring的@Aspect@Around。book四、redis根據(jù)資料,spring提供了4種與redis集成的方案Jedis,JRedis,SRP,Lettuce。<?xmlversion="1.0"encoding="UTF-<beans<?xmlversion="1.0"encoding="UTF-<beansxmlns=""""<beanid="jedisConnectionFactory"nnectionFactory"p:host-name="server"p:port="6379"/>privatestaticJe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論