Python--Redis實戰:第四章:數據安全與性能保障:第1節:持久化選項

上一篇文章: Python--Redis實戰:第三章:Redis命令:第七節:其餘命令
下一篇文章: Python--Redis實戰:第四章:數據安全與性能保障:第2節:快照持久化

前面的幾章介紹了各式各樣的Redis命令以及使用這些命令來操做數據結構的方法,還列舉了幾個使用Redis來解決實際問題的例子。爲了讓讀者作好使用Redis構建真實軟件的準備,本章將展現維護數據安全以及應對系統故障的方法。另外,本章還會介紹一些可以在保證數據完整性的前提下提高Redis性能的方法。數據庫

本章首先會介紹Redis的各個持久化選項,這些選項可讓用戶將字節的數據存儲在硬盤上面。接着本章將介紹若是經過Redis的複製特性,把不斷更新的數據副本存儲到附加的機器上面,從而提高系統的性能和數據的可靠性 。以後本章將會說明同時使用複製和持久化的好處和壞處,並經過這些例子來告訴讀者應該若是去選擇適合本身的持久化選項和複製選項。最後本章將對Reds的事務特性和流水線特性進行介紹,並討論若是診斷某些性能問題。segmentfault

閱讀這一章的重點是要弄懂更多的Redis運做原理,從而學會如何在首先保障數據正確的前提下,加快數據操做的執行速度。安全

如今,讓咱們來看看Redis是若是將數據存儲到硬盤裏面,使得數據在Redis重啓以後仍然存在的。數據結構

持久化選項

Redis提供了兩種不一樣的持久化方法來將數據存儲到硬盤裏面。一種方法叫快照(snapshotting),它能夠將存在於某一時刻的全部數據都寫入硬盤裏面。另外一種方法叫只追加文件(append-only file,AOF),它會在執行寫命令時,將被執行的寫命令複製到硬盤裏面。這兩種持久化方法便可以同時使用,又能夠單獨使用,在某些狀況下甚至能夠兩種方法都不使用,具體選擇哪一種持久化方法須要根據用戶的數據以及應用的決定。app

將內存中的數據存儲到硬盤的一個主要緣由是爲了在以後重用數據,或者是爲了防止系統故障而將數據備份到一個遠程位置。另外,存儲在Redis裏面的數據有多是通過長時間計算得出的,或者有程序在使用Redis存儲的數據進行計算,全部用戶但願能夠將這些數據存儲起來以便以後使用,這樣就沒必要再從新計算了。對於一些Redis應用來講,「計算」可能只是簡單地將另外一個數據庫的數據複製到Redis裏面,但對於另一些Redis應用來講,Redis存儲的數據多是根據數十億行日誌進行聚合分析得出的結果。性能

兩組不一樣的配置選項控制着Redis將數據寫入硬盤裏面的方法。下面代碼展現了這些配置選項以及他們的實例配置值:日誌

#快照持久化選項
#多久執行一次自動快照操做
save 60 1000
#建立快照失敗後是否仍然繼續執行寫命令
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 ./

接下來的一節將介紹如何使用快照來保存數據安全。code

上一篇文章: Python--Redis實戰:第三章:Redis命令:第七節:其餘命令
下一篇文章: Python--Redis實戰:第四章:數據安全與性能保障:第2節:快照持久化
相關文章
相關標籤/搜索