「Python 面試」第六次更新

1.說一說 Redis 是什麼

Redis 是一種「Key-Value」的內存型、非關係型數據庫,屬於 NoSQL 的一種。python

Redis 的讀寫速度特別快,特別適合讀寫頻繁的場景。git

Redis 支持主從複製,支持數據持久化。github

2.知道 Redis 有哪些經常使用數據類型嗎

  • String
  • List
  • Hash
  • Set
  • Zset

3.說一下 Redis 用來作什麼

  • 利用 String,能夠很容易實現「計數器」功能。
  • 利用 List ,能夠實現「粉絲列表」功能。
  • 利用 Hash,能夠實現「瀏覽記錄」功能。
  • 利用 Set 的並集、合集特性,能夠實現「共同好友」功能。
  • 利用 Zset 的排序特性,能夠實現「排行榜」功能。
  • 因爲 Redis 的高速讀寫特性,能夠充當「緩存」。
  • 充當「消息隊列」,如 Celery 中就是用 Redis 充當中間人,生產者和消費者都是向 Redis 中發佈任務和接受任務。

4.說一下 Redis 是怎樣將數據持久化的

  • RDB

    爲某一時刻下的 Redis 數據庫裏的內容拍一張照片(快照),並將該照片寫進磁盤中,實現數據持久化。面試

    當數據庫崩潰時,會丟失最後一次快照的內容。數據庫

    若是數據庫內容過大,那麼生成快照時間會很長。緩存

  • AOF

    經過寫命令,將數據追加到(Append Only File)文件末尾,實現數據持久化。服務器

    可是使用 AOF,須要解決同步問題。微信

    由於文件的寫入不會立馬執行,而是先將寫入的內容放置「緩存區」,等待操做系統決定什麼時候將緩存區的內容寫入磁盤。網絡

    Redis 擁有三種同步策略:Always、Everysec、No。多線程

    絕大多數狀況下都是使用第二種策略,每隔一秒鐘同步一次,這樣就算數據庫崩潰也只會損失一秒鐘的數據。

    而其餘兩種策略,要麼對數據庫的壓力過大,過多下降數據庫的性能,要麼具備丟失數據量過大的風險。

5.瞭解 Redis 主從複製嗎

使用slaveof host port設置主從服務器。

Redis 的主從服務器有點像樹結構,從服務器只能有一個主服務器。

Redis 不支持「主-主複製」。

Redis 主從複製經過利用 RDB 快照持久化的特性,將某一時刻下主服務器的內容生成快照,而後發送給從服務器,並利用緩存區保存在這期間裏進行的「寫命令」,等待快照發送完畢以後,再將寫命令發送給從服務器。

從服務器在接收到快照以後,會將自身的數據所有丟棄,載入快照裏的數據,載入完畢以後,再執行主服務器的寫命令。

6. 說一下 Redis 和 Memcache 的區別

Redis Memcache
支持 String、List、Hash、Set、Zset 只支持 String
支持數據持久化 不支持
支持事務 不支持
支持主從複製 不支持
支持分佈式 不支持
支持將數據交換到磁盤中 不支持
單進程、單線程 IO 多路複用 多線程、非阻塞 IO

總結爲一點,只用獲得 Redis 裏的 String 類型存儲數據時,使用 Memcache。

除此以外,使用 Redis。

7. 瞭解 Redis 是怎樣保證熱數據的嗎

Redis 是內存型的數據庫,能夠設置最大內存,當內存不夠時,會使用「數據淘汰策略」,刪除部分數據。

可是並非針對 Redis 裏全部的數據,而是抽樣選取小部分「數據集」。

策略 描述
Volatile-LRU 從設置了過時時間的「數據集」中,刪除最近、最少使用的數據集
Volatile-TTL 從設置了過時時間的「數據集」中,刪除即將要過時的數據。
Volatile-Random 從設置了過時時間的「數據集」中,隨機刪除數據。
Always-LRU 從「數據集」中刪除最近、最少使用的數據。
AllKeys-Random 從「數據集」中隨機刪除數據。
Noeviction 禁止刪除數據。

當 Redis 做爲緩存使用時,爲了保證緩存數據都是「熱數據」,能夠將 Redis 的最大內存設置爲緩存的大小,並使用 Always-LRU 策略。將最近最少使用的數據捨棄,保證緩存裏熱數據的「高命中率」。


至此,有關「數據庫」知識點的面試題就已告一段落,下次更新「網絡通訊方面」面試題。

全部內容均已上傳至「GitHub」倉庫,歡迎你們點擊原文查閱。

歡迎你們關注我的微信公衆號「PythonDeveloper」,全部內容第一時間更新於公衆號

全部內容均爲本人一點一點敲出來的,不免會有錯字、語句不通順的地方,歡迎你們指正。

因本人水平有限,文章內容不免會有出錯、遺漏,歡迎你們評論指出,一塊兒進步。

相關文章
相關標籤/搜索