亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

「Python 面試」第六次更新

Render / 2938人閱讀

摘要:說(shuō)一下是怎樣將數(shù)據(jù)持久化的為某一時(shí)刻下的數(shù)據(jù)庫(kù)里的內(nèi)容拍一張照片快照,并將該照片寫(xiě)進(jìn)磁盤(pán)中,實(shí)現(xiàn)數(shù)據(jù)持久化。通過(guò)寫(xiě)命令,將數(shù)據(jù)追加到文件末尾,實(shí)現(xiàn)數(shù)據(jù)持久化。至此,有關(guān)數(shù)據(jù)庫(kù)知識(shí)點(diǎn)的面試題就已告一段落,下次更新網(wǎng)絡(luò)通信方面面試題。

1.說(shuō)一說(shuō) Redis 是什么

Redis 是一種「Key-Value」的內(nèi)存型、非關(guān)系型數(shù)據(jù)庫(kù),屬于 NoSQL 的一種。

Redis 的讀寫(xiě)速度特別快,特別適合讀寫(xiě)頻繁的場(chǎng)景。

Redis 支持主從復(fù)制,支持?jǐn)?shù)據(jù)持久化。

2.知道 Redis 有哪些常用數(shù)據(jù)類型嗎

String

List

Hash

Set

Zset

3.說(shuō)一下 Redis 用來(lái)做什么

利用 String,可以很容易實(shí)現(xiàn)「計(jì)數(shù)器」功能。

利用 List ,可以實(shí)現(xiàn)「粉絲列表」功能。

利用 Hash,可以實(shí)現(xiàn)「瀏覽記錄」功能。

利用 Set 的并集、合集特性,可以實(shí)現(xiàn)「共同好友」功能。

利用 Zset 的排序特性,可以實(shí)現(xiàn)「排行榜」功能。

由于 Redis 的高速讀寫(xiě)特性,可以充當(dāng)「緩存」。

充當(dāng)「消息隊(duì)列」,如 Celery 中就是用 Redis 充當(dāng)中間人,生產(chǎn)者和消費(fèi)者都是向 Redis 中發(fā)布任務(wù)和接受任務(wù)。

4.說(shuō)一下 Redis 是怎樣將數(shù)據(jù)持久化的

RDB

為某一時(shí)刻下的 Redis 數(shù)據(jù)庫(kù)里的內(nèi)容拍一張照片(快照),并將該照片寫(xiě)進(jìn)磁盤(pán)中,實(shí)現(xiàn)數(shù)據(jù)持久化。

當(dāng)數(shù)據(jù)庫(kù)崩潰時(shí),會(huì)丟失最后一次快照的內(nèi)容。

如果數(shù)據(jù)庫(kù)內(nèi)容過(guò)大,那么生成快照時(shí)間會(huì)很長(zhǎng)。

AOF

通過(guò)寫(xiě)命令,將數(shù)據(jù)追加到(Append Only File)文件末尾,實(shí)現(xiàn)數(shù)據(jù)持久化。

但是使用 AOF,需要解決同步問(wèn)題。

因?yàn)槲募膶?xiě)入不會(huì)立馬執(zhí)行,而是先將寫(xiě)入的內(nèi)容放置「緩存區(qū)」,等待操作系統(tǒng)決定何時(shí)將緩存區(qū)的內(nèi)容寫(xiě)入磁盤(pán)。

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

絕大多數(shù)情況下都是使用第二種策略,每隔一秒鐘同步一次,這樣就算數(shù)據(jù)庫(kù)崩潰也只會(huì)損失一秒鐘的數(shù)據(jù)。

而其他兩種策略,要么對(duì)數(shù)據(jù)庫(kù)的壓力過(guò)大,過(guò)多降低數(shù)據(jù)庫(kù)的性能,要么具有丟失數(shù)據(jù)量過(guò)大的風(fēng)險(xiǎn)。

5.了解 Redis 主從復(fù)制嗎

使用slaveof host port設(shè)置主從服務(wù)器。

Redis 的主從服務(wù)器有點(diǎn)像樹(shù)結(jié)構(gòu),從服務(wù)器只能有一個(gè)主服務(wù)器。

Redis 不支持「主-主復(fù)制」。

Redis 主從復(fù)制通過(guò)利用 RDB 快照持久化的特性,將某一時(shí)刻下主服務(wù)器的內(nèi)容生成快照,然后發(fā)送給從服務(wù)器,并利用緩存區(qū)保存在這期間里進(jìn)行的「寫(xiě)命令」,等待快照發(fā)送完畢之后,再將寫(xiě)命令發(fā)送給從服務(wù)器。

從服務(wù)器在接收到快照之后,會(huì)將自身的數(shù)據(jù)全部丟棄,載入快照里的數(shù)據(jù),載入完畢之后,再執(zhí)行主服務(wù)器的寫(xiě)命令。

6. 說(shuō)一下 Redis 和 Memcache 的區(qū)別
Redis Memcache
支持 String、List、Hash、Set、Zset 只支持 String
支持?jǐn)?shù)據(jù)持久化 不支持
支持事務(wù) 不支持
支持主從復(fù)制 不支持
支持分布式 不支持
支持將數(shù)據(jù)交換到磁盤(pán)中 不支持
單進(jìn)程、單線程 IO 多路復(fù)用 多線程、非阻塞 IO

總結(jié)為一點(diǎn),只用得到 Redis 里的 String 類型存儲(chǔ)數(shù)據(jù)時(shí),使用 Memcache。

除此之外,使用 Redis。

7. 了解 Redis 是怎樣保證熱數(shù)據(jù)的嗎

Redis 是內(nèi)存型的數(shù)據(jù)庫(kù),可以設(shè)置最大內(nèi)存,當(dāng)內(nèi)存不夠時(shí),會(huì)使用「數(shù)據(jù)淘汰策略」,刪除部分?jǐn)?shù)據(jù)。

但是并不是針對(duì) Redis 里所有的數(shù)據(jù),而是抽樣選取小部分「數(shù)據(jù)集」。

策略 描述
Volatile-LRU 從設(shè)置了過(guò)期時(shí)間的「數(shù)據(jù)集」中,刪除最近、最少使用的數(shù)據(jù)集
Volatile-TTL 從設(shè)置了過(guò)期時(shí)間的「數(shù)據(jù)集」中,刪除即將要過(guò)期的數(shù)據(jù)。
Volatile-Random 從設(shè)置了過(guò)期時(shí)間的「數(shù)據(jù)集」中,隨機(jī)刪除數(shù)據(jù)。
Always-LRU 從「數(shù)據(jù)集」中刪除最近、最少使用的數(shù)據(jù)。
AllKeys-Random 從「數(shù)據(jù)集」中隨機(jī)刪除數(shù)據(jù)。
Noeviction 禁止刪除數(shù)據(jù)。

當(dāng) Redis 作為緩存使用時(shí),為了保證緩存數(shù)據(jù)都是「熱數(shù)據(jù)」,可以將 Redis 的最大內(nèi)存設(shè)置為緩存的大小,并使用 Always-LRU 策略。將最近最少使用的數(shù)據(jù)舍棄,保證緩存里熱數(shù)據(jù)的「高命中率」。


至此,有關(guān)「數(shù)據(jù)庫(kù)」知識(shí)點(diǎn)的面試題就已告一段落,下次更新「網(wǎng)絡(luò)通信方面」面試題。

所有內(nèi)容均已上傳至「GitHub」倉(cāng)庫(kù),歡迎大家點(diǎn)擊原文查閱。

歡迎大家關(guān)注個(gè)人微信公眾號(hào)「PythonDeveloper」,所有內(nèi)容第一時(shí)間更新于公眾號(hào)。

所有內(nèi)容均為本人一點(diǎn)一點(diǎn)敲出來(lái)的,難免會(huì)有錯(cuò)字、語(yǔ)句不通順的地方,歡迎大家指正。

因本人水平有限,文章內(nèi)容難免會(huì)有出錯(cuò)、遺漏,歡迎大家評(píng)論指出,一起進(jìn)步。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/45261.html

相關(guān)文章

  • Python 面試六次更新

    摘要:說(shuō)一下是怎樣將數(shù)據(jù)持久化的為某一時(shí)刻下的數(shù)據(jù)庫(kù)里的內(nèi)容拍一張照片快照,并將該照片寫(xiě)進(jìn)磁盤(pán)中,實(shí)現(xiàn)數(shù)據(jù)持久化。通過(guò)寫(xiě)命令,將數(shù)據(jù)追加到文件末尾,實(shí)現(xiàn)數(shù)據(jù)持久化。至此,有關(guān)數(shù)據(jù)庫(kù)知識(shí)點(diǎn)的面試題就已告一段落,下次更新網(wǎng)絡(luò)通信方面面試題。 1.說(shuō)一說(shuō) Redis 是什么 Redis 是一種「Key-Value」的內(nèi)存型、非關(guān)系型數(shù)據(jù)庫(kù),屬于 NoSQL 的一種。 Redis 的讀寫(xiě)速度特別快,...

    RichardXG 評(píng)論0 收藏0
  • Promise對(duì)象

    摘要:對(duì)比回調(diào)函數(shù)和暫時(shí)不管是什么,先看一下下面的代碼,看一看的好處?;卣{(diào)函數(shù)執(zhí)行一次首先,定義一個(gè)回調(diào)函數(shù),調(diào)用一次,看看這個(gè)代碼的寫(xiě)法。上面的代碼中,在方法中需要傳遞兩個(gè)回調(diào)函數(shù),這樣看著會(huì)有點(diǎn)亂。 對(duì)比回調(diào)函數(shù)和Promise 暫時(shí)不管Promise是什么,先看一下下面的代碼,看一看Promise的好處。需要特別說(shuō)明的是,在這個(gè)對(duì)比的中,Promise和回調(diào)都沒(méi)有考慮存在異常的情況。 ...

    ?。琛?/span> 評(píng)論0 收藏0
  • Vue的緩存算法—LRU算法

    摘要:最近在看的源碼,不得不說(shuō)的是,的源碼十分優(yōu)雅簡(jiǎn)潔,下面就來(lái)分享下的緩存利用的算法算法。關(guān)于算法的具體流程,可以來(lái)看下這個(gè),這個(gè)可視化過(guò)程,模擬了算法進(jìn)行調(diào)度的過(guò)程。 最近在看Vue的源碼,不得不說(shuō)的是,Vue的源碼十分優(yōu)雅簡(jiǎn)潔,下面就來(lái)分享下Vue的緩存利用的算法LRU算法。 LRU算法 LRU是Least recently used的簡(jiǎn)寫(xiě),主要原理是根據(jù)歷史訪問(wèn)記錄來(lái)淘汰數(shù)據(jù),說(shuō)白了...

    elina 評(píng)論0 收藏0
  • Tools - 收藏集 - 掘金

    摘要:個(gè)高級(jí)多線程面試題及回答后端掘金在任何面試當(dāng)中多線程和并發(fā)方面的問(wèn)題都是必不可少的一部分。默認(rèn)為提供了年杭州面試經(jīng)歷掘金想換個(gè)環(huán)境試試覺(jué)得做的不是自己想要的。源碼網(wǎng)站安居客項(xiàng)目架構(gòu)演進(jìn)掘金本文已授權(quán)微信公眾號(hào)獨(dú)家發(fā)布。 15 個(gè)高級(jí) Java 多線程面試題及回答 - 后端 - 掘金在任何Java面試當(dāng)中多線程和并發(fā)方面的問(wèn)題都是必不可少的一部分。如果你想獲得任何股票投資銀行的前臺(tái)資訊職...

    KitorinZero 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<