3 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊
數(shù)據(jù)完整性
從很多方面來(lái)看,Redis 很像當(dāng)初采用 InnoDB 前的 MySQL。而 Redis 采用了一種很合理的方式來(lái)保證數(shù)據(jù)完整性(復(fù)制,AOF 等),并且從 Redis2.6 開(kāi)始引入的 Lua 腳本在功能與易用性方面為 Redis 的成長(zhǎng)提供了很大助力。
相對(duì)來(lái)說(shuō),Lua 腳本與其他數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程很相似,但腳本的執(zhí)行有些許不同。在本文中最重要的一點(diǎn)就是一旦將腳本寫(xiě)入數(shù)據(jù)庫(kù),它會(huì)一直執(zhí)行直到以下任一種情況出現(xiàn):
1. 完成所有工作,所有寫(xiě)操作處理完成后腳本會(huì)自動(dòng)退出。
2. 腳本運(yùn)行時(shí)出錯(cuò)并中途退出,所有以前執(zhí)行的寫(xiě)操作都已發(fā)生,但不會(huì)再有其他寫(xiě)操作。
3. Redis 通過(guò) SHUTDOWN NOSAVE 關(guān)閉時(shí)(不保存)。
4. 你附加了調(diào)試器來(lái)“使”腳本完成 #1 與 #2 (或其他手段來(lái)保證不會(huì)丟失數(shù)據(jù))。
對(duì)于使用數(shù)據(jù)庫(kù)開(kāi)發(fā)軟件的人,我想你也認(rèn)同只有情景 #1 是最理想的。情景 #2,#3,#4 都會(huì)導(dǎo)致數(shù)據(jù)異常(#2 與
#4)和/或數(shù)據(jù)丟失(#3 和 #4)。如果你很重視數(shù)據(jù),你應(yīng)該盡可能地阻止數(shù)據(jù)異常與丟失。這不是哲學(xué),而是工作(This is not
philosophy, this is doing your job)。但很遺憾目前的 Redis 也幫不了你多少。所以我決定改變這種情況。

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
為了將內(nèi)存中的數(shù)據(jù)傳送到磁盤(pán)上,我們需要使用交換文件。
這些文件與數(shù)據(jù)持久性無(wú)關(guān),Redis會(huì)在退出前會(huì)將它們?nèi)縿h除。由于對(duì)交換文件的訪問(wèn)方式大多為隨機(jī)訪問(wèn),因此建議將交換文件存儲(chǔ)在固態(tài)磁盤(pán)上,這樣可以大大提高系統(tǒng)的運(yùn)行效率。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
1. 完成所有工作,所有寫(xiě)操作處理完成后腳本會(huì)自動(dòng)退出。
2. 腳本運(yùn)行時(shí)出錯(cuò)并中途退出,所有以前執(zhí)行的寫(xiě)操作都已發(fā)生,但不會(huì)再有其他寫(xiě)操作。
3. Redis 通過(guò) SHUTDOWN NOSAVE 關(guān)閉時(shí)(不保存)。
4. 你附加了調(diào)試器來(lái)“使”腳本完成 #1 與 #2 (或其他手段來(lái)保證不會(huì)丟失數(shù)據(jù))。
對(duì)于使用數(shù)據(jù)庫(kù)開(kāi)發(fā)軟件的人,我想你也認(rèn)同只有情景 #1 是最理想的。情景 #2,#3,#4 都會(huì)導(dǎo)致數(shù)據(jù)異常(#2 與 #4)和/或數(shù)據(jù)丟失(#3 和 #4)。如果你很重視數(shù)據(jù),你應(yīng)該盡可能地阻止數(shù)據(jù)異常與丟失。這不是哲學(xué),而是工作(This is not philosophy, this is doing your job)。但很遺憾目前的 Redis 也幫不了你多少。所以我決定改變這種情況。
- 3 回答
- 0 關(guān)注
- 1053 瀏覽
添加回答
舉報(bào)