5.redis源碼解析 暫不開放...
4. Redis Cluster ? 《4.1.1.2 集群解決的第二個問題》中提到我們?nèi)プ黾簩嶋H上是為了解決機(jī)器的性能瓶頸。通俗來講:假設(shè)我們單臺機(jī)器可以支持100Q...
3.哨兵機(jī)制 ? 在《4.1 集群設(shè)計繞不開的話題》中我們提到了單點(diǎn)故障的問題,在《4.2 主從復(fù)制》中我們又提到了使用從庫來做主庫的備份,保證數(shù)據(jù)盡量不丟失。不過問題來...
2. 主從同步 ? Redis可以實現(xiàn)一主N從,為了減少主庫的復(fù)制壓力,還可以做到從從復(fù)制。例如:一個主庫掛兩個從庫,兩個從庫又各自掛了兩個從庫。 ? 一個slav...
1. 集群設(shè)計繞不開的話題 ? 我接觸了很多技術(shù)棧,比如:Redis、Kafka、ELasticsearch、Zookeeper等等,對于當(dāng)時是一個初學(xué)者的我來說,這些技...
12. 監(jiān)視器 ? 在上一章《3.11 鍵通知》我們講了Redis的Key發(fā)生變化的時候會產(chǎn)生鍵通知,并且通過pub/sub機(jī)制來讓訂閱的客戶端知曉鍵通知。那么如果我想知...
11. 鍵通知 ? 我們希望得到“某個鍵的所有操作”或者“某個操作的所有鍵”的時候就可以用到鍵通知了。鍵通知其實用的就是pub/sub功能,舉個例子:我們給Redis發(fā)送...
10. lua腳本 ? 其實在《3.7.1 單機(jī)Redis的分布式鎖》的一段python代碼中已經(jīng)使用到了lua腳本,當(dāng)時是為了解決在Redis中取值和比對的原子性問題。...
9. Redis事務(wù) 9.1 Redis事務(wù)基本原理 ? 基本上數(shù)據(jù)庫都會有事務(wù)這個概念,像Mysql的事務(wù)就滿足ACID特性,但是Redis的事務(wù)并不是這樣。Redis...
8. 管道 ? 管道(pipeline)并不是Redis獨(dú)有的一個功能,也不是Redis先提出的。Redis是用的C/S架構(gòu)模型,請求和響應(yīng)是由RESP(在《3.3 Re...
7.分布式鎖 7.1 單機(jī)Redis的分布式鎖 ? 分布式鎖的終極奧義就是在一個地方有一個唯一資源,當(dāng)多個客戶端過來時,誰先搶到這個資源,誰就獲得了贏取其他公共資源的資格...
6. 持久化(RDB/AOF) ? 眾所周知,Redis是個將數(shù)據(jù)存在內(nèi)存的數(shù)據(jù)庫,當(dāng)機(jī)器宕機(jī)的時候數(shù)據(jù)會全部丟失。因此Redis給了兩種持久化方案,即:RDB(Redi...
5.LRU / LFU 5.1 LRU ? 在服務(wù)器配置中保存了 lru 計數(shù)器 server.lrulock,會定時(Redis 定時程序serverCorn())更新...
4. 淘汰策略 4.1 過期鍵刪除 4.1.1 過期策略 ? 在《1.1 redisObject》章節(jié)中我們看到“l(fā)ru:LRU_BITS”字段記錄了一個24bits的時...
3. Redis的通信協(xié)議 先貼一個 官方文檔[https://redis.io/topics/protocol] 3.1 RESP RESP(redis Serializa...
2. 事件 ? 在講Redis的事件之前我們必須要聊一個話題 —— 面試問到Redis基本上必問這樣一個問題:Redis是個單線程的程序,為什么還能這么快?很多同學(xué)就會卡...
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ù)據(jù)結(jié)構(gòu),確實,在Redis 5.0之前并沒有這個數(shù)據(jù)結(jié)構(gòu)。這個數(shù)據(jù)結(jié)構(gòu)稱之為“流”,為什么叫“流”呢?這種數(shù)據(jù)就像流水一樣,...