5.redis源碼解析 暫不開放...
4. Redis Cluster ? 《4.1.1.2 集群解決的第二個(gè)問題》中提到我們?nèi)プ黾簩?shí)際上是為了解決機(jī)器的性能瓶頸充甚。通俗來講:假設(shè)我們單臺(tái)機(jī)器可以支持100Q...
3.哨兵機(jī)制 ? 在《4.1 集群設(shè)計(jì)繞不開的話題》中我們提到了單點(diǎn)故障的問題识补,在《4.2 主從復(fù)制》中我們又提到了使用從庫來做主庫的備份,保證數(shù)據(jù)盡量不丟失晃跺。不過問題來...
2. 主從同步 ? Redis可以實(shí)現(xiàn)一主N從莉给,為了減少主庫的復(fù)制壓力,還可以做到從從復(fù)制问裕。例如:一個(gè)主庫掛兩個(gè)從庫逮壁,兩個(gè)從庫又各自掛了兩個(gè)從庫。 ? 一個(gè)slav...
1. 集群設(shè)計(jì)繞不開的話題 ? 我接觸了很多技術(shù)棧粮宛,比如:Redis窥淆、Kafka、ELasticsearch巍杈、Zookeeper等等忧饭,對(duì)于當(dāng)時(shí)是一個(gè)初學(xué)者的我來說,這些技...
12. 監(jiān)視器 ? 在上一章《3.11 鍵通知》我們講了Redis的Key發(fā)生變化的時(shí)候會(huì)產(chǎn)生鍵通知筷畦,并且通過pub/sub機(jī)制來讓訂閱的客戶端知曉鍵通知词裤。那么如果我想知...
11. 鍵通知 ? 我們希望得到“某個(gè)鍵的所有操作”或者“某個(gè)操作的所有鍵”的時(shí)候就可以用到鍵通知了。鍵通知其實(shí)用的就是pub/sub功能鳖宾,舉個(gè)例子:我們給Redis發(fā)送...
10. lua腳本 ? 其實(shí)在《3.7.1 單機(jī)Redis的分布式鎖》的一段python代碼中已經(jīng)使用到了lua腳本吼砂,當(dāng)時(shí)是為了解決在Redis中取值和比對(duì)的原子性問題。...
9. Redis事務(wù) 9.1 Redis事務(wù)基本原理 ? 基本上數(shù)據(jù)庫都會(huì)有事務(wù)這個(gè)概念攘滩,像Mysql的事務(wù)就滿足ACID特性帅刊,但是Redis的事務(wù)并不是這樣。Redis...
8. 管道 ? 管道(pipeline)并不是Redis獨(dú)有的一個(gè)功能漂问,也不是Redis先提出的赖瞒。Redis是用的C/S架構(gòu)模型女揭,請(qǐng)求和響應(yīng)是由RESP(在《3.3 Re...
7.分布式鎖 7.1 單機(jī)Redis的分布式鎖 ? 分布式鎖的終極奧義就是在一個(gè)地方有一個(gè)唯一資源,當(dāng)多個(gè)客戶端過來時(shí)栏饮,誰先搶到這個(gè)資源吧兔,誰就獲得了贏取其他公共資源的資格...
6. 持久化(RDB/AOF) ? 眾所周知,Redis是個(gè)將數(shù)據(jù)存在內(nèi)存的數(shù)據(jù)庫袍嬉,當(dāng)機(jī)器宕機(jī)的時(shí)候數(shù)據(jù)會(huì)全部丟失境蔼。因此Redis給了兩種持久化方案,即:RDB(Redi...
5.LRU / LFU 5.1 LRU ? 在服務(wù)器配置中保存了 lru 計(jì)數(shù)器 server.lrulock伺通,會(huì)定時(shí)(Redis 定時(shí)程序serverCorn())更新...
4. 淘汰策略 4.1 過期鍵刪除 4.1.1 過期策略 ? 在《1.1 redisObject》章節(jié)中我們看到“l(fā)ru:LRU_BITS”字段記錄了一個(gè)24bits的時(shí)...
3. Redis的通信協(xié)議 先貼一個(gè) 官方文檔[https://redis.io/topics/protocol] 3.1 RESP RESP(redis Serializa...
2. 事件 ? 在講Redis的事件之前我們必須要聊一個(gè)話題 —— 面試問到Redis基本上必問這樣一個(gè)問題:Redis是個(gè)單線程的程序箍土,為什么還能這么快?很多同學(xué)就會(huì)卡...
1.redis客戶端與服務(wù)端 1.1 客戶端 1.1.1 客戶端種類 redis 客戶端主要分為三種罐监,普通客戶端吴藻、發(fā)布訂閱客戶端、slave 客戶端弓柱。 普通客戶端我們不用多說...
6. pub/sub ? Redis可以執(zhí)行發(fā)布/訂閱模式(publish/subscribe)沟堡, 該模式可以解耦消息的發(fā)送者和接收者,使程序具有更好的擴(kuò)展性矢空。從宏觀上...
5. stream ? 很多同學(xué)并不認(rèn)識(shí)這個(gè)數(shù)據(jù)結(jié)構(gòu)航罗,確實(shí),在Redis 5.0之前并沒有這個(gè)數(shù)據(jù)結(jié)構(gòu)屁药。這個(gè)數(shù)據(jù)結(jié)構(gòu)稱之為“流”粥血,為什么叫“流”呢?這種數(shù)據(jù)就像流水一樣者祖,...