redis特性和集群詳解第二節(jié)課cluster_第1頁
redis特性和集群詳解第二節(jié)課cluster_第2頁
redis特性和集群詳解第二節(jié)課cluster_第3頁
redis特性和集群詳解第二節(jié)課cluster_第4頁
redis特性和集群詳解第二節(jié)課cluster_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本節(jié)課目標(biāo)1Redis常用命令和特性(數(shù)據(jù)類型、持久化、事務(wù)、發(fā)布訂閱等2RedisClusterRedis安wgettarxvfredis-3.2.9.tar.gzcdredis-makeinstallPREFIX=/root/svr/redis-3.2.9安裝src/redis-server../redis.conf&#啟動src/redis-cli#客戶端連接Ps:redis.conf文件KeysbitExistskeykeystringvaluekeystringvaluekey0,nxnotexist的意刪除某1Expire過期時間(單位秒TTLkey失效,keykey對應(yīng)的值string類型value,并指定此鍵值對應(yīng)的有效期一次設(shè)置多個key的值,成功返回ok表示所有的值都設(shè)置了,失敗返回0表示沒有任key的值,并返回key的舊值keykeynilkey的值做加加操作,incrintvalue會返回錯誤,incr一個不存在的key,則設(shè)置key為1incrkeykeyvaluekey的值做的是減減操作,decrkeykey為-decrkeyvalue,取指keyvalue值的長度persistxxx(取消過期時間選擇數(shù)據(jù)庫(0-15庫Select0moveage1//age1Randomkey隨機(jī)返回一個Rename重命Type回數(shù)據(jù)類測試連接是否可以成功Quit出連DbsizekeyInforedisConfigget|set示與修改配String字符串格式setkeystring類型是二進(jìn)制安全的。意思是redis的string可以包含任何數(shù)據(jù)。比如jpg或者序列化的對象。string類型是Redis最基本的數(shù)據(jù)類型,一個鍵最大能512MBHash(哈希格式:hmset key1value1key2Redishash是一個鍵值(key=>value)Redishash是一個string類型的field和value的映射表,hash特別適合用于對象List(列表Redis(左格式: 在key對應(yīng)list的頭部添加字符串元素格式:rpush 在key對應(yīng)list的尾部添加字符串元素格式:lremname keylistcountvalue相同的元素格式:llennamekeylistSet(集合格式: RedisSetstringzset(sortedset:有序集格式: namescoreRediszsetsetstring類型元素的集合,double類型的分?jǐn)?shù)。redis正是通過分?jǐn)?shù)來為集合中的成員zset的成員是唯一的,但分?jǐn)?shù)(score)事redis對事務(wù)的支持目前還比較簡單。redis只能保證一個 發(fā)起的事務(wù)中令可 令。由于redis是單線程來處理所有的請求的所以做到這點(diǎn)是很容易的。一般情況下redis在接受到一個 令后會立即處理并返回處理結(jié)果,但是當(dāng)一個在接中發(fā)出multi命令有,這個連接會進(jìn)入一個事務(wù)上下文,該連接后續(xù)令并不是立即執(zhí)行,而是先放exec命令后,redis會順序的執(zhí)行隊列中的所有命令。并將所有命令的運(yùn)行結(jié)果打包到一起返回給.然后此連接就結(jié)束事務(wù)上下文。開啟事物:exec取消事物:discard發(fā)布與訂閱布訂閱s)是一種消息通信模式,主要的目的是解耦消息發(fā)布者和消息訂閱者之間的b代碼級別耦合也解決兩者在物理部署上的耦合。在redis實現(xiàn)是SUBSCRIBE(訂閱)、UNSUBSCRIBE(取消)和PUBLISH(推送)生產(chǎn)PSUBSCRIBE支持*Redis提供了兩種持久化方式:RDB(默認(rèn))rdbRedisDataBaseRDB功能函數(shù)rdbSave(生成RDB文件)和rdbLoad(從文件加載內(nèi)存)兩個函的RDB文件將替換已有的RDB文件。RDBBGSAVE則fork出一個子子進(jìn)程負(fù)責(zé)調(diào)用rdbSave并在保存完成之后向主進(jìn)程發(fā)送信rdbSaveRedisBGSAVE執(zhí)行期rdbLoad函數(shù):是redis服務(wù)重啟或者啟動的時候回加載保存到磁盤的RDB文件加載到內(nèi)存中結(jié)構(gòu) |REDIS|RDB-VERSION|SELECT-DB|KEY-VALUE-PAIRS|EOF|CHECK-SUM 保存策略save900save3001030010keysave60AofAppend-onlyfile每當(dāng)執(zhí)行服務(wù)器(定時)任務(wù)或者函數(shù)時flushAppendOnlyFile函數(shù)都會被調(diào)用,這個函數(shù)執(zhí)aof寫入保存WRITE:根據(jù)條件,將aof_buf中的緩存寫入到AOF文件SAVEfsyncfdatasyncAOF文件保存到磁盤中。兩個步驟都需要根據(jù)一定的條件來執(zhí)行,Redis提供了三種條件。保存策略模 WRITE是阻塞

SAVE

停機(jī)時丟失的數(shù)據(jù)操作系統(tǒng)最后一次對AOF

阻 阻

SAVE

阻 不阻 一般情況下不超過2秒鐘阻 阻 最多只丟失一個命令的數(shù)據(jù)結(jié)構(gòu)內(nèi)容是redis通訊協(xié)議(RESP)格式令文本總結(jié):RDB:數(shù)據(jù).AOF:數(shù)據(jù)+命令A(yù)OFRDBaof。:通常為被方(master)主動將數(shù)據(jù)發(fā)送到方(slave),方接收到數(shù)據(jù)在當(dāng)前實例,最終目的是為了保證雙方的數(shù)據(jù)一致,master的壓力。1、slavemastersync4、master發(fā)送完RDB文件,將緩存令也發(fā)給slave。5、masterslave主從1步:cpreids.conf2步:Vim3步:slaveof192.168.0.126379(master的地址)4步:Vimredis.conf(master)第5步 0.0.0.0#無ip都可以第6步:./redis-server 第7步./redis-server Ps:setgetinfo1、masterset值,slave2、configget集群是一個提供多個Redis(分布式)節(jié)點(diǎn)間共享數(shù)據(jù)的程序集Redis16384hash個槽(slot)16384個分片(hashslot)RedisCluster16384(0~16383)RedisClusterslot16384個哈希槽中keyCRC16校驗和。3節(jié)點(diǎn)A(6381)包含0到5499B(6382)5500到10999號哈希槽.節(jié)點(diǎn)C(6383)11000到16383這種結(jié)構(gòu)很容易添加或者刪除節(jié)點(diǎn).比如如果新添加個節(jié)點(diǎn)D,我需要從節(jié)點(diǎn)A,B,C中D上A,ABC節(jié)點(diǎn)上,然后將沒有任何槽的A節(jié)點(diǎn)從集群中移除即可.由于從一個節(jié)點(diǎn)將哈希槽移動到另一個節(jié)點(diǎn)并不會停止服數(shù)據(jù)遷slot(槽)key的遷移,這個功能很重要,極大地方便了集群做線性擴(kuò)MasterA1、2、3slotMasterBslot遷移的中間狀態(tài)下,slot1、2、3MasterA節(jié)點(diǎn)的狀態(tài)表現(xiàn)為MIGRATING(遷移),MasterB節(jié)點(diǎn)的狀態(tài)表現(xiàn)為IMPORTING()。nodeIMPORTING狀被遷移slot在目標(biāo)MasterB節(jié)點(diǎn)中出現(xiàn)的一種狀態(tài),準(zhǔn)備遷移slotMaterAMasterBslotIMPORTING鍵空間遷鍵空間遷移是指當(dāng)滿足了slot遷移前提的情況下通過相關(guān)命令將slot12、3中的鍵空間從MasterA節(jié)點(diǎn)轉(zhuǎn)移到MasterB節(jié)點(diǎn)。此時刷新node的映射關(guān)&高可用集群的節(jié)點(diǎn)內(nèi)置了和高可用特性特點(diǎn):1、節(jié)點(diǎn)自動發(fā)2、slave->master,集群容錯3、Hotresharding:分片4、基于配置(nodes-port.conf)的集群管5、客戶端與redis節(jié)點(diǎn)直連、不需要中 層6、所有的redis節(jié)點(diǎn)彼此互聯(lián)( -PONG機(jī)制),二進(jìn)制協(xié)議優(yōu)化傳輸速redis-trib.rbredis-trib.rb是redis作者用ruby完成的是對rediscluster管理工具,集成在redis的源碼src 名作redisslot增加節(jié)點(diǎn):./redis-trib.rbadd-nodeip:port第一個參數(shù)是新節(jié)點(diǎn)的地址,第二個參數(shù)是任意一個已經(jīng)存在的節(jié)點(diǎn)的IP和端口.移除節(jié)點(diǎn):redis-tribdel-node ip:port`<node-id>`clusterreplicate

溫馨提示

  • 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

提交評論