1.redis怎麼保證原子性
redis 是單執行緒的事件迴圈,乙個操作執行完了才執行下乙個操作
2.redis常用的資料結構/資料型別(高頻問點,熟!!!)
字串(string)、列表(list)、無序集合(zset)、有序集合(set)、雜湊表(hash)
3.redis執行緒安全嗎
redis採用了執行緒封閉的觀念,把任務封閉在乙個執行緒,自然避免了執行緒安全問題,不過對於需要依賴多個redis操作的復合操作來說,依然需要鎖,而且有可能是分布式鎖。
4.redis事務支援一致性嗎
5.redis使用場景
1、熱點資料的快取:由於redis訪問速度塊、支援的資料型別比較豐富,所以redis很適合用來儲存熱點資料。
2、限時業務的運用:redis中可以使用expire命令設定乙個鍵的生存時間,到時間後redis會刪除它。利用這一特性可以運用在限時的優惠活動資訊、手機驗證碼等業務場景。
6.redis持久化:這個是重點!!!!
繼續牛客第二頁,在收藏裡。
7 redis 和 資料庫是怎麼保持一致性的(要詳細分析)
8 redis事務
9 redis快取淘汰策略
10.redis為什麼快(如果做到高併發)?
11.redis中一些常用的指令
12.redis主從同步
13.redis快取一致
14.redis實現原理,為什麼是單執行緒
15.redis實現分布式鎖
16.redis如何保證高併發
單機的redis幾乎不太可能說qps超過10萬+,一般在幾萬。redis通過主從架構,實現讀寫分離,主節點負責寫,並將資料同步給其他從節點,從節點負責讀,從而實現高併發。如果你的快取要容納的資料量很大,達到了幾十g,甚至幾百g,或者是幾t,那你就需要redis集群,而且用redis集群之後,可以提供可能每秒幾十萬的讀寫併發。
17.漸進式rehash
redis中的字典使用雜湊表作為底層實現。字典包含兩個陣列ht[0]和ht[1],陣列中的每乙個項都是乙個雜湊表,一般情況下,字典只使用ht[0],但是當ht0中的資料超過負載因子定義的閾值上限的時候,就需要吧ht0的資料轉移到ht1,然後將ht0清空。ht0的資料轉移到ht1要進行rehash重新計算hash值確定位置,而這個操作並不是一次性進行的,因為這樣會影響速度,redis將rehash分在了不同的步驟中,通過維護乙個rehashidx來記錄rehash在ht0中進行到了哪個位置,當index為-1時表示rehash結束。
18.redis哨兵
面試總結 快取Redis
以下是面試以來被問到過的題,當然也包括一些沒被問的題,有備無患。redis跳表 鍊錶加上多級索引的結構,稱為跳表,應用在redis zset資料結構當中。zset要求資料唯一有序,且支援插入刪除。實現跳表包含zskiplistnode和skiplist兩個結構定義。zskiplistnode表示跳表...
redis面試題總結
1 速度快,因為資料存在記憶體中,類似於hashmap,hashmap的優勢就是查詢和操作的時間複雜度都是o 1 2 支援豐富資料型別,支援string,list,set,sorted set,hash 3 支援事務,操作都是原子性,所謂的原子性就是對資料的更改要麼全部執行,要麼全部不執行 4 豐富...
面試 Redis面試常見問題總結
redis採用的是基於記憶體的採用的是單程序單執行緒模型的kv資料庫,由c語言編寫。官方提供的資料是可以達到100000 的qps。這個資料不比採用單程序多執行緒的同樣基於記憶體的kv資料庫memcached差。redis快的主要原因是 完全基於記憶體 資料結構簡單,對資料操作也簡單 使用多路 i ...