主從復(fù)制 如果 Redis 的讀寫請(qǐng)求量很大,那么單個(gè) Redis 實(shí)例很有可能承擔(dān)不了這么大的請(qǐng)求量,如何提高Redis的性能呢?我們可以部署多個(gè)副本節(jié)點(diǎn),業(yè)務(wù)采用讀寫分離...
主從復(fù)制 如果 Redis 的讀寫請(qǐng)求量很大,那么單個(gè) Redis 實(shí)例很有可能承擔(dān)不了這么大的請(qǐng)求量,如何提高Redis的性能呢?我們可以部署多個(gè)副本節(jié)點(diǎn),業(yè)務(wù)采用讀寫分離...
Redis持久化機(jī)制 Redis 的數(shù)據(jù)全部在內(nèi)存里,如果突然宕機(jī),數(shù)據(jù)就會(huì)全部丟失,因此必須有一種機(jī)制來保證 Redis 的數(shù)據(jù)不會(huì)因?yàn)楣收隙鴣G失,這種機(jī)制就是 Redis...
內(nèi)存淘汰機(jī)制 當(dāng) Redis 內(nèi)存超出物理內(nèi)存限制時(shí),內(nèi)存的數(shù)據(jù)會(huì)開始和磁盤產(chǎn)生頻繁的交換 (swap)。 交換會(huì)讓 Redis 的性能急劇下降,對(duì)于訪問量比較頻繁的 Red...
過期策略 如果我們對(duì)key設(shè)置了失效時(shí)間1分鐘,1分鐘后,Redis 是如何對(duì)這個(gè) key 進(jìn)行刪除的呢? Redis過期策略采用的是惰性刪除+定期刪除策略。 1.惰性刪除 ...
線程模型 大家都知道,Redis是單線程的,為什么采用單線程的Redis也會(huì)如此之快呢?接下來我們分析其中緣由。 嚴(yán)格來說, Redis Server是多線程的, 只是它...
1.布隆過濾器 我們平時(shí)刷今日頭條,今日頭條會(huì)給我們推薦新的內(nèi)容,它每次推薦時(shí)要去重,去掉那些已經(jīng)看過的內(nèi)容。問題來了,如何實(shí)現(xiàn)推送去重呢? 下意識(shí)會(huì)想到,我們?cè)跀?shù)據(jù)庫里記錄...
HyperLogLog 假設(shè)有個(gè)千萬日活的統(tǒng)計(jì)系統(tǒng),需要統(tǒng)計(jì)系統(tǒng)每天的UV。如果是你的話你該怎么設(shè)計(jì)? 如果統(tǒng)計(jì) PV 那非常好辦,使用string的incr就搞定了。 但是...
假設(shè)有個(gè)百萬簽到系統(tǒng),記錄用戶簽到記錄,簽了記錄1,沒簽記錄 0,如果我們用redis的string存儲(chǔ),一年就要存1000000*365個(gè)key,會(huì)占用大量的內(nèi)存。 為了解...
Redis 有 5 種基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),分別為:string (字符串)、list (列表)、set (集合)、hash (哈希) 和 zset (有序集合)。 Redis 所有...
1.八股文帶你吊打面試官之MySQL 我們很多小伙伴平時(shí)會(huì)看很多面試八股文,但是經(jīng)常遇到一個(gè)問題,結(jié)論是知道了,但是面試官繼續(xù)深剖,問我們底層實(shí)現(xiàn),這時(shí)我們懵圈了,因此我專門...
1.八股文帶你吊打面試官之Redis 我們很多小伙伴平時(shí)會(huì)看很多面試八股文,但是經(jīng)常遇到一個(gè)問題,結(jié)論是知道了,但是面試官繼續(xù)深剖,問我們底層實(shí)現(xiàn),這時(shí)我們懵圈了,因此我專門...