下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
網(wǎng)站服務器托管數(shù)據(jù)庫之Redis對于網(wǎng)站服務器托管用戶來說在搭建框架的時候經(jīng)常使用的數(shù)據(jù)庫為SQL或者是MySQL不過也有用戶會結(jié)合自己實際的狀況使用Redis數(shù)據(jù)庫。Redis有什么特點從本質(zhì)上來說是一個key-value內(nèi)存數(shù)據(jù)庫,整個數(shù)據(jù)庫統(tǒng)統(tǒng)加載在內(nèi)存上進行操作,定期通過異步操作把數(shù)據(jù)庫數(shù)據(jù)flush到硬盤上進行保存,是目前最快的key-valueDBRedis出色之處不僅僅在于性能,Redis最大的魅力在于能夠存儲多種的數(shù)據(jù)結(jié)構(gòu),并且單的value最大限制是1GB,因此Redis可以用來實現(xiàn)很多有用的功能,比方說用他的List來做雙向鏈表,實現(xiàn)一個輕量級的消息隊列服務,用他的Set做高性能的tag系統(tǒng)等等。當然有優(yōu)點肯定也有缺點,主要的缺點就是受到物理內(nèi)存的限制,不能作為海量數(shù)據(jù)的高性能讀寫,所以一般來說,Redi適合的場景主要局限在較小的數(shù)據(jù)量高性能操作和運算上。Redis是單進程單線程的,利用隊列技術(shù)將并發(fā)訪問變?yōu)榇性L問,消除了傳統(tǒng)數(shù)據(jù)庫串行控制的開銷Redis支持的數(shù)據(jù)類型1.strings(字符串)a) 如果只使用redis中的字符串類型,且不使用redis的持久化功能,那么,redis就和memcache非常非常的像了;b) 在遇到數(shù)值操作時,會自動轉(zhuǎn)換過為字符串,如寫入數(shù)字1,讀出來將是字符串1;c) 本身具有原子性的指令:incr、decr和Memecached中increment、decrement類似;d) 應用場景:常規(guī)計數(shù)-微博數(shù),粉絲數(shù);2.lists(列表)a) lists數(shù)據(jù)類型的實現(xiàn)不是數(shù)組而是通過鏈表這種數(shù)據(jù)結(jié)構(gòu)實現(xiàn);b) 使用Lists結(jié)構(gòu),我們可以輕松地實現(xiàn)最新消息排行等功能。Lists的另一個應用就是消息隊列,可以利用Lists的PUSH操作,將任務存在Lists中,然后工作線程再用POP操作將任務取出進行執(zhí)行;c)每個子元素都是String類型的雙向鏈表,可以通過push和pop操作從列表的頭部或者尾部添加或者刪除元素,這樣List即可以作為棧,也可以作為隊列;sets(無序集合)a) 所謂集合就是一堆不重復值的組合,并且是沒有順序的;b) 在微博應用中,可以將一個用戶所有的關(guān)注人存在一個集合中,將其所有粉絲存在一個集合。Redis還為集合提供了求交集、并集、差集等操作,可以非常方便的實現(xiàn)如共同關(guān)注、共同喜好、二度好友等功能,對上面的所有集合操作,你還可以使用不同的命令選擇將結(jié)果返回給客戶端還是存集到一個新的集合中。sortedsets(有序集合)a) 和Sets相比,SortedSets增加了一個權(quán)重參數(shù)score,使得集合中的元素能夠按score進行有序排列;b) 比如一個存儲全班同學成績的SortedSets,其集合value可以是同學的學號,而score就可以是其考試得分,這樣在數(shù)據(jù)插入集合的時候,就已經(jīng)進行了天然的排序??梢杂肧ortedSets來做帶權(quán)重的隊列,比如普通消息的score為1,重要消息的score為2,然后工作線程可以選擇按score的倒序來獲取工作任務。讓重要的任務優(yōu)先執(zhí)行。c) 應用場景:在線游戲的排行榜,根據(jù)得分你通常想要:列出前100名高分選手列出某用戶當前的全球排名hashes(哈希)a)在Memcached中,我們經(jīng)常將一些結(jié)構(gòu)化的信息打包成hashmap,在客戶端序列化后存儲為一個字符串的值,比如用戶的昵稱、年齡、性別、積分等,這時候在需要修改其中某一項時,通常需要將所有值取出反序列化后,修改某一項的值,再序列化存儲回去。這樣不僅增大了開銷,也不適用于一些可能并發(fā)操作的場合(比如兩個并發(fā)的操作都需要修改積分)。而Redis的Hash結(jié)構(gòu)可以使你像在數(shù)據(jù)庫中Update一個屬性一樣只修改某一項屬性值。b)應用場景:存儲部分變更數(shù)據(jù),如用戶信息,session共享;分布式Redis支持主從模式,Master會將數(shù)據(jù)同步到slave,而slave不會將數(shù)據(jù)同步到Master。Slave啟動時會連接Master來同步數(shù)據(jù)這是一個典型的分布式讀寫分離模型,我們可以利用master來插入數(shù)據(jù),slave來提供檢索服務,這樣可以有效的減少單個機器的并發(fā)訪問數(shù)量。使用Redis的好處1、 速度快,因為數(shù)據(jù)是存儲在內(nèi)存中的,類似于HashMap的優(yōu)勢就是查找和操作的時間復雜度都是O(1)2、 支持豐富的數(shù)據(jù)類型,支持String,list,set,sortedset,hash3、 支持事務,操作都是原子性的4、 豐富的特性,可用于緩存消息,按key設(shè)置過期時間,過期后自動刪除注意事項1、 Master最好不要做持久化工作,如果不重寫AOF文件,這個持久化方式對性能的影響是最小的,因為AOF文件會不斷增大,過大的話會影響Master的重啟速度。2、 如果數(shù)據(jù)比較重要,某個Slave開啟AOF備份數(shù)據(jù),策略最好每一秒同步一次3、 為了主從復制的速度和連接的穩(wěn)定性,Master和Slave最好在同一個局域網(wǎng)內(nèi)4、 盡量避免在壓力很大的主庫上增加從庫5、 主從復制不要用圖狀結(jié)構(gòu),用單向鏈表更為穩(wěn)定,即Master<-Slave1<-Slave2<-Slave3…如何解決Redis的并發(fā)競爭問題Redis為單進程單線程模式,采用隊列模式將并發(fā)訪問變?yōu)榇性L問。Redis本身沒有鎖的概念,Redis對于多個客戶端連接并不存在競爭,但是在Jedis客戶端對Redis進行并發(fā)訪問時會發(fā)生連接超時、數(shù)據(jù)轉(zhuǎn)換錯誤、阻塞、客戶端關(guān)閉連接等問題,這些問題均是由于客戶端連接混亂造成。對此有2種解決方法:1.客戶端角度,為保證每個客戶端間正常有序與Redis進行通信,對連接進行池化,同時對客戶端讀寫Redis操作采用內(nèi)部鎖synchronizedo2.服務器角度,利用setnx實現(xiàn)鎖。注:對于第一種,需要應用程序自己處理資源的同步,可以使用的方法比較通俗,可以使用synchronized也可以使用lock;第二種需要用到Redis的setnx命令,但是需要注意一些問題。Redis持久
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購銷合同的范本(2篇)
- 股東項目風險劃分合同(2篇)
- 南京工業(yè)大學浦江學院《稅法二》2023-2024學年第一學期期末試卷
- ××機械有限責任公司高效礦井重型刮板輸送機成套設(shè)備安全驗收報告(機械)
- 芳香烴說課稿
- 渭塘劉玨路組織設(shè)計
- 《中 國石拱橋》第課時說課稿
- 《乙醇》的說課稿
- 南京工業(yè)大學浦江學院《公共事業(yè)管理概論》2023-2024學年第一學期期末試卷
- 簡單兩人散伙協(xié)議書(2篇)
- 項目實施管理方案
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)數(shù)學試卷(含答案逐題解析)
- 船舶委托設(shè)計合同模板
- 人教版八年級上冊生物全冊教案(完整版)教學設(shè)計含教學反思
- 成都師范學院《教師口語》2021-2022學年第一學期期末試卷
- 肺上葉惡性腫瘤護理查房
- 棋牌室消防應急預案
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- 醫(yī)美機構(gòu)轉(zhuǎn)讓合同模板
- 帶您走進西藏學習通超星期末考試答案章節(jié)答案2024年
- 期中測試卷(1-4單元)(試題)-2024-2025學年四年級上冊數(shù)學人教版
評論
0/150
提交評論