摘要:為了讓讀者做好使用構(gòu)建真實軟件的準備,本章將展示維護數(shù)據(jù)安全以及應(yīng)對系統(tǒng)故障的方法。上一篇文章實戰(zhàn)第三章命令第七節(jié)其他命令下一篇文章實戰(zhàn)第四章數(shù)據(jù)安全與性能保障第節(jié)快照持久化
上一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第七節(jié):其他命令
下一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第2節(jié):快照持久化
前面的幾章介紹了各式各樣的Redis命令以及使用這些命令來操作數(shù)據(jù)結(jié)構(gòu)的方法,還列舉了幾個使用Redis來解決實際問題的例子。為了讓讀者做好使用Redis構(gòu)建真實軟件的準備,本章將展示維護數(shù)據(jù)安全以及應(yīng)對系統(tǒng)故障的方法。另外,本章還會介紹一些能夠在保證數(shù)據(jù)完整性的前提下提升Redis性能的方法。
本章首先會介紹Redis的各個持久化選項,這些選項可以讓用戶將字節(jié)的數(shù)據(jù)存儲在硬盤上面。接著本章將介紹如果通過Redis的復(fù)制特性,把不斷更新的數(shù)據(jù)副本存儲到附加的機器上面,從而提升系統(tǒng)的性能和數(shù)據(jù)的可靠性 。之后本章將會說明同時使用復(fù)制和持久化的好處和壞處,并通過這些例子來告訴讀者應(yīng)該如果去選擇適合自己的持久化選項和復(fù)制選項。最后本章將對Reds的事務(wù)特性和流水線特性進行介紹,并討論如果診斷某些性能問題。
閱讀這一章的重點是要弄懂更多的Redis運作原理,從而學(xué)會如何在首先保障數(shù)據(jù)正確的前提下,加快數(shù)據(jù)操作的執(zhí)行速度。
現(xiàn)在,讓我們來看看Redis是如果將數(shù)據(jù)存儲到硬盤里面,使得數(shù)據(jù)在Redis重啟之后仍然存在的。
持久化選項Redis提供了兩種不同的持久化方法來將數(shù)據(jù)存儲到硬盤里面。一種方法叫快照(snapshotting),它可以將存在于某一時刻的所有數(shù)據(jù)都寫入硬盤里面。另一種方法叫只追加文件(append-only file,AOF),它會在執(zhí)行寫命令時,將被執(zhí)行的寫命令復(fù)制到硬盤里面。這兩種持久化方法即可以同時使用,又可以多帶帶使用,在某些情況下甚至可以兩種方法都不使用,具體選擇哪種持久化方法需要根據(jù)用戶的數(shù)據(jù)以及應(yīng)用的決定。
將內(nèi)存中的數(shù)據(jù)存儲到硬盤的一個主要原因是為了在之后重用數(shù)據(jù),或者是為了防止系統(tǒng)故障而將數(shù)據(jù)備份到一個遠程位置。另外,存儲在Redis里面的數(shù)據(jù)有可能是經(jīng)過長時間計算得出的,或者有程序在使用Redis存儲的數(shù)據(jù)進行計算,所有用戶希望可以將這些數(shù)據(jù)存儲起來以便之后使用,這樣就不必再重新計算了。對于一些Redis應(yīng)用來說,“計算”可能只是簡單地將另一個數(shù)據(jù)庫的數(shù)據(jù)復(fù)制到Redis里面,但對于另外一些Redis應(yīng)用來說,Redis存儲的數(shù)據(jù)可能是根據(jù)數(shù)十億行日志進行聚合分析得出的結(jié)果。
兩組不同的配置選項控制著Redis將數(shù)據(jù)寫入硬盤里面的方法。下面代碼展示了這些配置選項以及他們的實例配置值:
#快照持久化選項 #多久執(zhí)行一次自動快照操作 save 60 1000 #創(chuàng)建快照失敗后是否仍然繼續(xù)執(zhí)行寫命令 stop-writes-on-bgsave-error no #是否對快照文件進行壓縮 rdbcompression yes #命名硬盤上的快照文件 dbfilename dump.rdb #AOF持久化選項 appendonly no appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb #共享選項,這個選項決定了快照文件和AOF文件的保存位置。 dir ./
接下來的一節(jié)將介紹如何使用快照來保存數(shù)據(jù)安全。
上一篇文章:Python--Redis實戰(zhàn):第三章:Redis命令:第七節(jié):其他命令
下一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第2節(jié):快照持久化
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44988.html
摘要:因為文件重寫也需要用到子進程,所以快照持久化因為創(chuàng)建子進程而導(dǎo)致的性能問題和內(nèi)存占用問題,在持久化中也同樣存在。上一篇文章實戰(zhàn)第四章數(shù)據(jù)安全與性能保障第節(jié)快照持久化下一篇文章實戰(zhàn)第四章數(shù)據(jù)安全與性能保障第節(jié)復(fù)制 上一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第2節(jié):快照持久化下一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第4節(jié):復(fù)制 ...
摘要:上一篇文章實戰(zhàn)第四章數(shù)據(jù)安全與性能保障第節(jié)持久化選項下一篇文章實戰(zhàn)第四章數(shù)據(jù)安全與性能保障第節(jié)持久化可以通過創(chuàng)建快照來獲得存儲在內(nèi)存里面的數(shù)據(jù)在某個時間點上的副本。 上一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第1節(jié):持久化選項下一篇文章:Python--Redis實戰(zhàn):第四章:數(shù)據(jù)安全與性能保障:第3節(jié):AOF持久化 Redis可以通過創(chuàng)建快照來獲得存儲...
閱讀 2446·2021-08-18 10:21
閱讀 2551·2019-08-30 13:45
閱讀 2184·2019-08-30 13:16
閱讀 2147·2019-08-30 12:52
閱讀 1388·2019-08-30 11:20
閱讀 2656·2019-08-29 13:47
閱讀 1647·2019-08-29 11:22
閱讀 2788·2019-08-26 12:11