為什麼redis單執行緒還是這麼快?
1.絕大部分的請求是純粹的記憶體操作(非常快速)
2.採用單執行緒,避免了不必要的額競爭條件和上下文切換,單執行緒指的是網路請求模組使用的是乙個執行緒,即乙個執行緒處理了所有網路請求。
3.非阻塞i/o-i/o多路復用,這樣提高了redis的吞吐量,"多路"指的是多個網路連線,「復用」指的是復用同乙個執行緒/採用多路復用i/o技術可以讓單個執行緒高效地處理多個連線請求。
4.redis的瓶頸最有可能的是機器記憶體的大小或者網路頻寬,以及操作不當的阻塞。
什麼是快取擊穿,快取穿透,快取雪崩?
1.快取擊穿
解決方案:
1.設定key為永不過期(redis有記憶體淘汰機制)
2.job定時重新整理乙個快取中的資料過期時間是30分鐘,那麼job每隔29分鐘定時重新整理資料,將資料庫查到的資料更新到快取中去。
3.多級快取,可能會造成額外的快取空間浪費。
4.鎖的方式
快取雪崩(大量key)
快取雪崩是指在設定快取時採用了相同的過期時間,倒是快取在某一時間同時失效,導致所有的查詢都落在了資料庫上,造成了快取雪崩。
解決方案:
快取穿透(安全)
是指查詢乙個不存在的資料,由於快取是不命中時需要從資料庫查詢,查不到資料則不寫入快取,這將會導致每次查詢這個不存在的資料時都要去資料庫查詢,造成快取穿透,在流量大時可能資料庫就會掛掉,要是有人惡意用這個不存在的key攻擊我們的應用,這就是漏洞。
解決方案:
Redis常見面試題
5.2.1 redis 是什麼?常 的應用場景?redis是乙個快取資料庫,是乙個非關係型資料庫的鍵值儲存資料庫 應用場景 內容快取,主要用於處理大量資料的高訪問負載 日誌系統5.2.2 redis 常 資料型別有哪些?各自有什麼應用場景?string 儲存的資料是普通的鍵值對可用string來進行...
常見面試題(Redis)
redis redis支援的資料型別?string字串 hash 雜湊 list 列表 set 集合 zset sorted set 有序集合 如何解決快取雪崩 我們先說一下什麼是快取雪崩吧 簡單來說就是redis掛掉了,請求全部走資料庫。還有就是 如果快取資料設定的過期時間是相同的,並且redis...
Redis常見面試題
1 什麼是redis?簡述它的優缺點?1.redis本質上是乙個key value型別的記憶體資料庫,很像memcached。2.整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。3.因為是純記憶體操作,redis的效能非常出色,每秒可以處理超過 10...