




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、redis講解王江財(cái)1精選PPT目錄123456redis簡(jiǎn)介redis數(shù)據(jù)類型主從復(fù)制持久化redis集群jedis及集群應(yīng)用7發(fā)布與訂閱功能2精選PPT$1redis簡(jiǎn)介一、什么是redisRedis是用C語(yǔ)言開(kāi)發(fā)的一個(gè)開(kāi)源的高性能鍵值對(duì)(key-value)數(shù)據(jù)庫(kù)。它通過(guò)提供多種鍵值數(shù)據(jù)類型來(lái)適應(yīng)不同場(chǎng)景下的存儲(chǔ)需求,目前為止Redis支持的鍵值數(shù)據(jù)類型如下:1、字符串類型2、散列類型3、列表類型4、集合類型5、有序集合類型。3精選PPT$1redis簡(jiǎn)介二、redis應(yīng)用場(chǎng)景緩存分布式集群架構(gòu)中的session分離聊天室的在線好友列表任務(wù)隊(duì)列。(秒殺、搶購(gòu)、12306等等)應(yīng)用排行榜網(wǎng)
2、站訪問(wèn)統(tǒng)計(jì)數(shù)據(jù)過(guò)期處理(可以精確到毫秒)4精選PPT$1redis簡(jiǎn)介三、redis與memcache的優(yōu)缺點(diǎn)1 、Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤(pán)中,重啟的時(shí)候可以再次加載進(jìn)行使用。2 、Redis不僅僅支持簡(jiǎn)單的string類型的數(shù)據(jù),同時(shí)還提供list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。3 、Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。4、內(nèi)存超出時(shí)redis將不常用緩存swap到 磁盤(pán)。5、redis支持集群,添加節(jié)點(diǎn)刪除節(jié)點(diǎn)不丟數(shù)據(jù)6、redis是單線程5精選PPT$1redis簡(jiǎn)介四、服務(wù)器端常用命令命令描述例子ping檢查鏈接是否存
3、活 ping,返回pong,則存活echo在命令行打印內(nèi)容echo contextinfo獲取服務(wù)器上的信息和統(tǒng)計(jì)infoquit退出客戶端quitselect選擇數(shù)據(jù)庫(kù)select dbnodbsize返回當(dāng)前數(shù)據(jù)庫(kù)中key的數(shù)目dbsizeflushdb刪除當(dāng)前數(shù)據(jù)庫(kù)中的所有keyflushdbflushall刪除所有數(shù)據(jù)庫(kù)中的所有keyflushall6精選PPT$2redis數(shù)據(jù)類型一、string類型1、在Redis中字符串類型的Value最多可以容納的數(shù)據(jù)長(zhǎng)度是512M。命令描述例子set賦值set key valueget獲取值get keyappend追加字符串a(chǎn)ppend k
4、ey valueincr自增(+1)incr keydecr自減(-1)decr keyincrby自增,增加指定步長(zhǎng)incrby key incrementdecrby自減,減少指定步長(zhǎng)decrby key decrementgetset先獲取元素再賦值getset key valuesetex賦值并指定key的存活時(shí)間setex key second value7精選PPT$2redis數(shù)據(jù)類型命令描述例子setnxkey不存在就賦值,否則不做操作setnx key valuestrlen返回key的值的長(zhǎng)度strlen keysetrange字符串替換(包含start)setrange
5、key start valuegetrange獲取指定位置字符串getrange key start endmset同時(shí)設(shè)置多個(gè)key valuemset key value key2 value2.mget同時(shí)獲取多個(gè)key的值mget key key2.msetnxkey不存在同時(shí)設(shè)置多個(gè)key value,否則不設(shè)置msetnx key value key2 value2setbit設(shè)置二進(jìn)制的值setbit key offset valuegetbit獲取二進(jìn)制的值getbit key offset8精選PPT$2redis數(shù)據(jù)類型2.應(yīng)用:1)緩存2)生成全局主鍵3)計(jì)數(shù)器9精選PP
6、T$2redis數(shù)據(jù)類型二、hash類型1、hash叫散列類型,它提供了字段和字段值的映射。字段值只能是字符串類型,不支持散列類型、集合類型等其它類型。如下:10精選PPT$2redis數(shù)據(jù)類型 命令描述例子hset給key中的filed字段賦值hset key field valuehget 獲取可以中filed字段的值hget key fieldhexists判斷key中是否存在filedhexists key fieldhlen獲取key中filed的數(shù)量hlen key hdel刪除key中的filed字段hdel key field field2.hgetall獲取key中所有的fi
7、eld和valuehgetall keyhmset同時(shí)設(shè)置多個(gè)field和valuehmset key field value field2 value2.hmget同時(shí)獲取多個(gè)field的值hmget key field field2.hsetnx如果field不存在賦值,否則不操作hsetnx key field valuehincrby給field的值增加指定的步長(zhǎng)hincrby key field incrementhkeys獲取所有的keyhkeys keyhvals獲取所有的valuehvals key11精選PPT$2redis數(shù)據(jù)類型2、應(yīng)用:1)商品信息12精選PPT$2re
8、dis數(shù)據(jù)類型三、list類型1、列表類型(list)可以存儲(chǔ)一個(gè)有序的字符串列表,常用的操作是向列表兩端添加元素,或者獲得列表的某一個(gè)片段。命令描述例子lpush在list頭部添加值lpush key value value2.rpush在list尾部添加值rpush key value value2.lrange獲取指定位置的數(shù)據(jù)lrange key start endlpop從頭部彈出key的值(刪除)lpop keyrpop從尾部彈出key的值(刪除)rpop keyrpoplpush從一個(gè)list的尾部彈出插入到另一個(gè)list的頭部rpoplpush source destnatio
9、n13精選PPT$2redis數(shù)據(jù)類型命令描述例子llen返回key的長(zhǎng)度llen keylrem刪除前面幾個(gè)值為value的元素lrem key count valuelset按下標(biāo)賦值lset key index valuelindex返回下標(biāo)的值lindex key indexltrim截取list 指定位置的值ltrim key start endlinsert在某個(gè)元素的前面或后面插入值linsert key before|after pivot valuelpushxkey存在頭部添加,否則不做操作lpushx key valuerpushxkey存在在尾部添加,否則不做操作rpu
10、shx key value14精選PPT$2redis數(shù)據(jù)類型2、應(yīng)用:1)商用戶發(fā)布商品評(píng)論將評(píng)論信息轉(zhuǎn)成json存儲(chǔ)到list中。用戶在頁(yè)面查詢?cè)u(píng)論列表,從redis中取出json數(shù)據(jù)展示到頁(yè)面。品的評(píng)論2)隊(duì)列15精選PPT$2redis數(shù)據(jù)類型四、set類型1、set就是集合類型,集合中每個(gè)元素都不相同,且沒(méi)有順序。命令描述例子sadd添加值sadd key member member2smembers遍歷集合smembers keyscard獲取key的成員數(shù)量scard keysrem刪除指定成員srem key member member2.sismember判斷成員是否存在si
11、smember key memberspop隨機(jī)彈出一個(gè)值(刪除)spop key16精選PPT$2redis數(shù)據(jù)類型命令描述例子srandmember隨機(jī)彈出一個(gè)成員(不刪除)srandmember keysmove移動(dòng)一個(gè)集合的成員到另一個(gè)集合smove source destination membersdiff求集合的差集sdiff key key2.sdiffstore求集合的差集并存到新集合中sdiffstore destination key key2.sinter求集合交集sinter key key2.sinterstore求集合交集并存到新集合中sinterstore de
12、stination key key2.sunion求集合并集suion key key2.sunionstore求集合并集并存到新集合中suionstore destination key key2.17精選PPT$2redis數(shù)據(jù)類型2、應(yīng)用:1)有多少特定用戶訪問(wèn)了特定資源18精選PPT$2redis數(shù)據(jù)類型五、sorted set類型1、在集合類型的基礎(chǔ)上有序集合類型為集合中的每個(gè)元素都關(guān)聯(lián)一個(gè)分?jǐn)?shù),這使得我們不僅可以完成插入、刪除和判斷元素是否存在在集合中,還能夠獲得分?jǐn)?shù)最高或最低的前N個(gè)元素、獲取指定分?jǐn)?shù)范圍內(nèi)的元素等與分?jǐn)?shù)有關(guān)的操作。 2有序集合和list類型二者有著很大區(qū)別: 1
13、)列表類型是通過(guò)鏈表實(shí)現(xiàn)的,獲取靠近兩端的數(shù)據(jù)速度極快,而當(dāng)元素增多后,訪問(wèn)中間數(shù)據(jù)的速度會(huì)變慢。 2)有序集合類型使用散列表實(shí)現(xiàn),所有即使讀取位于中間部分的數(shù)據(jù)也很快。 3)列表中不能簡(jiǎn)單的調(diào)整某個(gè)元素的位置,但是有序集合可以 4)有序集合要比列表類型更耗內(nèi)存。19精選PPT$2redis數(shù)據(jù)類型 命令描述例子zadd添加成員zadd key score member score member.zcard獲取成員數(shù)量zcard keyzcount獲取指定分?jǐn)?shù)之間的成員數(shù)量zcount key min maxzincrby給成員增加指定分?jǐn)?shù)zincrby key increment membe
14、rzrange遍歷指定下標(biāo)之間的成員及分?jǐn)?shù)(分?jǐn)?shù)從小到大排列)zrange key start end withscoreszrangebyscore遍歷指定分?jǐn)?shù)之間的成員(及分?jǐn)?shù))zrangebyscore key min max withscoreszrank返回成員的下標(biāo)(分?jǐn)?shù)從小到大排列)zrank key memberzrem刪除指定成員zrem key member member2.zrevrange遍歷指定成員及分?jǐn)?shù)(分?jǐn)?shù)從大到小排列)zrevrange key start end withscores20精選PPT$2redis數(shù)據(jù)類型命令描述例子zrevrank返回成員下標(biāo)(
15、分?jǐn)?shù)從大到?。﹝revrank key memberzscore獲取指定成員的分?jǐn)?shù)zscore key memberzrevrangebyscore獲取在指定分?jǐn)?shù)之間的成員及分?jǐn)?shù)(分?jǐn)?shù)從高到低)zrevrangebyscore key max min withscoreszremrangebyrank刪除下標(biāo)之間的成員zremrangebyrank key start endzremrangebyscore刪除指定分?jǐn)?shù)之間的成員zremrangebyscore key min max21精選PPT$2redis數(shù)據(jù)類型3、應(yīng)用:1)積分排行榜2)銷售排行榜22精選PPT$2redis數(shù)據(jù)類型六
16、、key命令命令描述例子keys獲取所有的keykeys patterndel刪除指定keydel key key2.exists判斷key是否存在exists keymove移動(dòng)一個(gè)key到另一個(gè)庫(kù)中move key dbrename給key重新命名rename key newkeyrenamenx給key重新命名,當(dāng)newkey存在是不操作renamenx key newkeypersist將key持久化persist key23精選PPT$2redis數(shù)據(jù)類型命令描述例子expire設(shè)置key的存活時(shí)間expire key sexondsexpireat設(shè)置key的存活時(shí)間(年月日時(shí)間戳
17、expireat key timestampttl實(shí)時(shí)查看key的剩余存活時(shí)間ttl keypttl查看key的剩余存活時(shí)間(毫秒)pttl keyrandomkey隨機(jī)返回一個(gè)keyrandomkeytype返回key中的value的類型type keyselect24精選PPT$3redis的持久化Redis的高性能是由于其將所有數(shù)據(jù)都存儲(chǔ)在了內(nèi)存中,為了使Redis在重啟之后仍能保證數(shù)據(jù)不丟失,需要將數(shù)據(jù)從內(nèi)存中同步到硬盤(pán)中,這一過(guò)程就是持久化。Redis支持兩種方式的持久化,一種是RDB方式,一種是AOF方式。可以單獨(dú)使用其中一種或?qū)⒍呓Y(jié)合使用。25精選PPT$3redis的持久化一
18、、RDBRDB方式的持久化是通過(guò)快照(snapshotting)完成的,當(dāng)符合一定條件時(shí)Redis會(huì)自動(dòng)將內(nèi)存中的數(shù)據(jù)進(jìn)行快照并持久化到硬盤(pán)。RDB是Redis默認(rèn)采用的持久化方式,在redis.conf配置文件中默認(rèn)有此下配置:save 900 1save 300 10save 60 1000026精選PPT$3redis的持久化二、AOF以日志形式記錄服務(wù)器每一個(gè)操作,在Redis服務(wù)器啟動(dòng)之初會(huì)讀取該文件來(lái)重新構(gòu)建數(shù)據(jù)庫(kù),以保證啟動(dòng)后數(shù)據(jù)庫(kù)中的數(shù)據(jù)是完整的。默認(rèn)情況下Redis沒(méi)有開(kāi)啟AOF(append only file)方式的持久化,可以通過(guò)appendonly參數(shù)開(kāi)啟:appen
19、donly yes27精選PPT$3redis的持久化優(yōu)勢(shì):1、RDB 是一個(gè)非常緊湊(compact)的文件,它保存了Redis 在某個(gè)時(shí)間點(diǎn)上的數(shù)據(jù)集。這種文件非常適合用于進(jìn)行備份:可以自己設(shè)置保存頻率。2、RDB 非常適用于災(zāi)難恢復(fù)(disaster recovery):它只有一個(gè)文件,并且內(nèi)容都非常緊湊,可以(在加密后)將它傳送到別的數(shù)據(jù)中心,或者亞馬遜S3 中。3、 RDB 可以最大化Redis 的性能:父進(jìn)程在保存RDB 文件時(shí)唯一要做的就是fork 出一個(gè)子進(jìn)程,然后這個(gè)子進(jìn)程就會(huì)處理接下來(lái)的所有保存工作,父進(jìn)程無(wú)須執(zhí)行任何磁盤(pán)I/O 操作。4、 RDB 在恢復(fù)大數(shù)據(jù)集時(shí)的速度比
20、AOF 的恢復(fù)速度要快。劣勢(shì):rdb是以每隔一段時(shí)間進(jìn)行一次快照進(jìn)行的數(shù)據(jù)持久,如果一旦在這一時(shí)間段出現(xiàn)服務(wù)器故障,將會(huì)災(zāi)難性的。三、RDB持久化方式優(yōu)劣勢(shì):28精選PPT$3redis的持久化優(yōu)勢(shì):1、使用AOF 持久化會(huì)讓Redis 變得非常耐久(much more durable):你可以設(shè)置不同的fsync 策略,比如無(wú)fsync ,每秒鐘一次fsync ,或者每次執(zhí)行寫(xiě)入命令時(shí)fsync 。2、Redis 可以在AOF 文件體積變得過(guò)大時(shí),自動(dòng)地在后臺(tái)對(duì)AOF 進(jìn)行重寫(xiě)3、AOF 文件有序地保存了對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有寫(xiě)入操作,這些寫(xiě)入操作以Redis 協(xié)議的格式保存,因此AOF 文件的
21、內(nèi)容非常容易被人讀懂,對(duì)文件進(jìn)行分析(parse)也很輕松。劣勢(shì): 1、對(duì)于相同數(shù)量的數(shù)據(jù)集而言,AOF文件通常要大于RDB文件2、根據(jù)所使用的fsync 策略,AOF 的速度可能會(huì)慢于RDB 。三、AOF持久化方式優(yōu)劣勢(shì):29精選PPT$4redis的主從復(fù)制一、主從復(fù)制如果主服務(wù)器宕機(jī),從服務(wù)器可以替代主服務(wù)器來(lái)為客戶端服務(wù),相當(dāng)于備份。并且可以把持久化的配置在從服務(wù)器端來(lái)減輕主服務(wù)器的壓力,主服務(wù)器不做持久化,由從服務(wù)器負(fù)責(zé)。二、原理1、無(wú)論是初次連接還是重新連接,當(dāng)建立一個(gè)從服務(wù)器時(shí),從服務(wù)器都將向主服務(wù)器發(fā)送一個(gè)SYNC 命令。2、接到SYNC 命令的主服務(wù)器將開(kāi)始執(zhí)行BGSAVE
22、,并在保存操作執(zhí)行期間,將所有新執(zhí)行的寫(xiě)入命令都保存到一個(gè)緩沖區(qū)里面。3、當(dāng)BGSAVE 執(zhí)行完畢后,主服務(wù)器將執(zhí)行保存操作所得的.rdb 文件發(fā)送給從服務(wù)器4、從服務(wù)器接收這個(gè).rdb 文件,并將文件中的數(shù)據(jù)載入到內(nèi)存中。5、主服務(wù)器會(huì)以Redis 命令協(xié)議的格式,將寫(xiě)命令緩沖區(qū)中積累的所有內(nèi)容都發(fā)送給從服務(wù)器。30精選PPT$4redis的主從復(fù)制三、部分重同步從服務(wù)器可以在主從服務(wù)器之間的連接斷開(kāi)時(shí)進(jìn)行自動(dòng)重連,在Redis 2.8 版本之前,斷線之后重連的從服務(wù)器總要執(zhí)行一次完整重同步(full resynchronization)操作,但是從2.8 版本開(kāi)始,從服務(wù)器可以根據(jù)主服務(wù)器
23、的情況來(lái)選擇執(zhí)行完整重同步還是部分重同步(partialresynchronization)四、部分重同步原理這個(gè)特性需要主服務(wù)器為被發(fā)送的復(fù)制流創(chuàng)建一個(gè)內(nèi)存緩沖區(qū)(in-memory backlog),并且主服務(wù)器和所有從服務(wù)器之間都記錄一個(gè)復(fù)制偏移量(replication offset)和一個(gè)主服務(wù)器ID (master run id),當(dāng)出現(xiàn)網(wǎng)絡(luò)連接斷開(kāi)時(shí),從服務(wù)器會(huì)重新連接,并且向主服務(wù)器請(qǐng)求繼續(xù)執(zhí)行原來(lái)的復(fù)制進(jìn)程: 如果從服務(wù)器記錄的主服務(wù)器ID 和當(dāng)前要連接的主服務(wù)器的ID 相同,并且從服務(wù)器記錄的偏移量所指定的數(shù)據(jù)仍然保存在主服務(wù)器的復(fù)制流緩沖區(qū)里面,那么主服務(wù)器會(huì)向從服務(wù)器發(fā)
24、送斷線時(shí)缺失的那部分?jǐn)?shù)據(jù),然后復(fù)制工作可以繼續(xù)執(zhí)行。 否則的話,從服務(wù)器就要執(zhí)行完整重同步操作。31精選PPT$4redis的主從復(fù)制五、配置配置一個(gè)從服務(wù)器非常簡(jiǎn)單,只要在配置文件中增加以下的這一行就可以了:slaveof 6379當(dāng)然,你需要將代碼中的 和6379 替換成你的主服務(wù)器的IP 和端口號(hào)。另外一種方法是調(diào)用SLAVEOF 命令,輸入主服務(wù)器的IP 和端口,然后同步就會(huì)開(kāi)始::6379 SLAVEOF 6379OK32精選PPT$5redis集群一、集群架構(gòu)33精選PPT$5redis集群一、集群架構(gòu)34精選PPT$5redis集群一、集群架構(gòu)35精選PPT$5redis集群一、集群架構(gòu)36精選PPT$6發(fā)布與訂閱一、PSUBSCRIBEPSUBSCRIBE pattern pattern .訂閱一個(gè)或多個(gè)符合給定模式的頻道。每個(gè)模式以*
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年城市設(shè)計(jì)與空間規(guī)劃專業(yè)知識(shí)全面考試卷及答案
- 2025年茶藝師資格考試試題及答案
- 2025年創(chuàng)新思維與問(wèn)題解決能力考試試題及答案
- 2025年房地產(chǎn)管理考試卷及答案展示
- 2025年北京出租汽車考試題
- 2025年佛山出租車從業(yè)資格證考試模擬題
- 2025年廣西客運(yùn)資格專業(yè)能力考試題庫(kù)
- 護(hù)理管理環(huán)境的講課
- 商業(yè)物業(yè)設(shè)施維護(hù)保養(yǎng)合同要點(diǎn)歸納
- 大型節(jié)日活動(dòng)策劃方案
- GB/T 27806-2011環(huán)氧瀝青防腐涂料
- GB/T 17949.1-2000接地系統(tǒng)的土壤電阻率、接地阻抗和地面電位測(cè)量導(dǎo)則第1部分:常規(guī)測(cè)量
- 夢(mèng)幻西游古龍服務(wù)端安裝教程
- 《出生醫(yī)學(xué)證明》單親母親情況聲明
- 4配電柜安全風(fēng)險(xiǎn)點(diǎn)告知牌
- 旋挖機(jī)操作手知識(shí)試卷含參考答案
- GB∕T 22590-2021 軋鋼加熱爐用耐火澆注料
- 研發(fā)部程序文件bom管理
- 大件運(yùn)輸管理制度
- Q∕GDW 11445-2015 國(guó)家電網(wǎng)公司管理信息系統(tǒng)安全基線要求
- 材料科學(xué)基礎(chǔ) 第2章 晶體結(jié)構(gòu)
評(píng)論
0/150
提交評(píng)論