以下是面試以來被問到過的題,當然也包括一些沒被問的題,有備無患。
redis跳表
鍊錶加上多級索引的結構,稱為跳表,應用在redis zset資料結構當中。zset要求資料唯一有序,且支援插入刪除。
實現跳表包含zskiplistnode和skiplist兩個結構定義。
zskiplistnode表示跳表節點。
zskiplist儲存跳表節點的資訊。
參考文章
redis-跳躍表實現
mysql索引和跳表
常見的四種更新策略
先更新資料庫再更新快取
先更新資料庫再刪快取對比操作1上增加了刪除操作,可能會刪除非髒值,但是不影響一致性。
先刪除快取再更新資料庫
先更新快取再更新資料庫
分布式快取和Redis面試總結
lru 最近最少使用 演算法實現 可以使用乙個有序的單鏈表來實現。當有乙個新的資料被訪問時,如果存在於單鏈表之中,則直接讀取該資料,然後把該節點插入鍊錶頭部。如果不存在單鏈表之中,先判斷是否還有快取,如果有則將該節點插入單鏈表的頭部,如果沒有先刪除單鏈表尾部的節點,然後再將節點插入到單鏈表頭部。引入...
面試Redis 快取併發 快取雪崩 快取穿透
本文主要敘述快取併發,快取雪崩,快取穿透的問題以及解決方案。話說回來,快取併發會帶來什麼危害 既然我們已經知道快取併發的的嚴重性,那如何解決 知道原因後,我們可以對照原因來設計解決方案了。分布式鎖和redis高可用,其實是預防措施,這些應該是事前工作。如果現在快取併發確實已經發生了,能做的就是把這個...
redis面試總結
1.redis怎麼保證原子性 redis 是單執行緒的事件迴圈,乙個操作執行完了才執行下乙個操作 2.redis常用的資料結構 資料型別 高頻問點,熟!字串 string 列表 list 無序集合 zset 有序集合 set 雜湊表 hash 3.redis執行緒安全嗎 redis採用了執行緒封閉的...