Redis理論
Redis 和memcached基本類似,只是redis可以把數(shù)據(jù)同步到磁盤
Redis是一個開源,內(nèi)存存儲的數(shù)據(jù)結(jié)構(gòu)服務(wù)器,可用作數(shù)據(jù)庫,高速緩存和消息隊列代理。
云數(shù)據(jù)庫RDS 是一個穩(wěn)定可靠??蓮椥陨炜s的在線數(shù)據(jù)服務(wù)庫服務(wù)。基于飛天分布式系統(tǒng)和全SSD盤高性能存儲,支持Mysql sql server PPAS(兼容ORICAL)
redis 是一個高性能的key-value數(shù)據(jù)庫。redis的出現(xiàn),很大程度補償了memcached這類key:value 存儲的不足,在部分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補充作用。它提供了java,C,C++,perl,JavaScript,Python,Ruby,Erlang,PHP等客戶端,使用很方便。
Redis與memcached一樣所有數(shù)據(jù)都是保存在內(nèi)存中,不同的是redis不定期的通過異步方式保存到磁盤上 (這稱為“半持久化模式”);也可以把每一次數(shù)據(jù)變化都寫入到一個append only file(aof)里面(這稱為“全持久化模式”)。
Redis支持主從同步,數(shù)據(jù)可以從master向任意數(shù)量的slave上同步,slave可以是關(guān)聯(lián)其他slave的master。
Redis的優(yōu)點
1.redis不僅僅支持簡單的key-values類型的數(shù)據(jù),也支持list set zset hash等數(shù)據(jù)類型的存儲
2.Redis支持?jǐn)?shù)據(jù)的備份,master-slave模式的數(shù)據(jù)備份
3.Redis 支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時候可以再次加載使用
Redis只會緩存所有的key信息,如果redis發(fā)現(xiàn)內(nèi)存的使用超過了一定的閥值,將觸發(fā)swap的操作,根據(jù)計算得出哪些key對應(yīng)的values需要swap到磁盤,同時在內(nèi)存中清除。這種特性可以使得redis保持超過其機器本身內(nèi)存大小的數(shù)據(jù)。當(dāng)然,機器本身的內(nèi)存必須要能夠保持所有的key,這些數(shù)據(jù)是不會進行swap操作的。同時,由于將內(nèi)存中的數(shù)據(jù)swap到了磁盤中的時候,提供服務(wù)的主線程和進行swap操作的子線程會共享這部分內(nèi)存,所以,如果需要更新,則會阻塞這個操作,直到swap完成操作后才會進行修改。
當(dāng)從redis中讀取數(shù)據(jù)的時候,若是需要從swap中加載相應(yīng)的數(shù)據(jù),再返回給請求方,這里就存在一個IO線程池的問題。在默認(rèn)情況下,redis會出現(xiàn)阻塞,即完成swap加載后,才會響應(yīng)。所以,設(shè)置適當(dāng)?shù)腎O線程池的大小,從swap中加載數(shù)據(jù)的讀取請求做并發(fā)處理,減小阻塞的時間。
Redis Sentinel 提供高可用
Redis Cluster 提供自動分區(qū)
Gearman
利用gearman實現(xiàn)redis緩存mysql
Gearman 是一個支持分布式的任務(wù)分發(fā)框架:
Gearman Job Server:Gearman 核心程序,需要編譯安裝并以守護進程形式運行在后臺。后臺守護進程,維護一個隊列。
Gearman Client:可以理解為任務(wù)的請求者。
Gearman Worker:任務(wù)的真正執(zhí)行者,一般需要自己編寫具體邏輯并通過守護進程方式運行,Gearman Worker接收到Gearman Client傳遞的任務(wù)內(nèi)容后,會按順序處理。
大致流程:下面要編寫的mysql觸發(fā)器,就相當(dāng)于Gearman的客戶端。修改表,插入表就相當(dāng)于直接下發(fā)任務(wù)。然后通過lib_mysqludf_json UDF(user defined functions) 庫函數(shù)將關(guān)系數(shù)據(jù)映射為 JSON 格式,然后在通過gearman-mysql-udf插件將任務(wù)加入到Gearman的任務(wù)隊列中,最后通過redis_worker.php(worker.php將mysql數(shù)據(jù)異步復(fù)制到redis),也就是Gearman的worker端來完成redis數(shù)據(jù)庫的更新。
Mysql 要實現(xiàn)與外部程序互通的最好方式通過mysql UDF(user defined functions)來實現(xiàn)。為了讓mysql能將數(shù)據(jù)傳入到gearman中,這里使用了lib_mysqludf_json UDF庫函數(shù)將關(guān)系數(shù)據(jù)映射為JSON格式(gearman只接受字符串作為入口參數(shù)),然后在通過gearman-mysql-udf插件將任務(wù)加入到Gearman的任務(wù)隊列中。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前文章:redis理論知識-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://jinyejixie.com/article42/dsehec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、網(wǎng)站營銷、用戶體驗、網(wǎng)站策劃、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容