「耐用」我的意思是,服務器可以在任何時候崩潰,只要磁盤保持完好,沒有數據丟失(請參閱ACID)。似乎這就是日誌模式的用處,但是如果啓用日記功能,這不會影響在內存數據上運行的目的嗎?閱讀操作可能不會受到日誌記錄的影響,但它看起來像日誌記錄會殺死您的寫入性能。redis是一個持久的數據存儲嗎?
回答
Redis不是通常作爲一個「持久」數據存儲(即ACID中的「D」意義上),即使使用日記功能。大多數使用情況都會故意犧牲一點耐用性來換取速度。
但是,「追加唯一文件」存儲模式可以選擇配置爲以性能爲代價以持久方式運行。每次修改都需要支付fsync()。要配置此,在你的.conf文件中設置這兩個選項:
appendonly yes
appendfsync always
從文檔:How durable is the append only file?
檢查redis.conf,您可以配置 Redis的多少次FSYNC()數據磁盤上的 。有三種選擇:
- Fsync()每次將新命令添加到附加日誌文件 時。很 很慢,很安全。
- Fsync()每秒鐘一次 。足夠快,並且如果發生 災難,您可以丟失1秒的數據。
- 從不fsync(),只需將您的 數據交給Operating 系統即可。更快和不安全的方法。
(請注意,對於與Redis的-2.0.0後的配置文件航運appendfsync默認爲everysec
,而不是always
。)
很高興知道。你能提供一個鏈接來支持你在說什麼嗎? – allyourcode 2010-03-25 19:35:25
@FrankFarmer我編輯了一些答案,因爲它已經過時了關於配置默認的信息,並且通過以「否」引導而「掩埋標題」有點過時。隨時提高我的改進。 :-) – HostileFork 2015-02-27 18:04:54
@HostileFork考慮到你所做的實質性改變,我認爲你最好提交自己的答案。已經足夠長的時間了,肯定會有一個新的視角 – 2015-02-28 00:39:36
- 1. 從Redis到MongoDB的數據存儲持久數據
- 2. 數據存儲的持久性是後面的一個
- 3. Redis的2個實例:作爲緩存和作爲持久數據存儲
- 4. 使用兩個核心數據模型,一個持久存儲協調器和多個持久存儲?
- 5. 關係數據的持久存儲
- 6. 對象數據的持久存儲
- 7. Firebase數據庫持久性存儲
- 8. AngularJS - 投入持久數據存儲
- 9. 在會話中存儲持久數據
- 10. Redis發佈/訂閱數據持久性
- 11. PHP - Redis/Memcachedb/Mongodb或其他持久存儲來存儲計數器
- 12. Android:是Wearable.DataApi的DataMap是持久存儲嗎?
- 13. 持久性存儲是否需要iPhone上的核心數據?
- 14. 終極版存儲一般的數據,非持久
- 15. 在持久性存儲中存儲數據
- 16. Redis是否具有選定鍵/數據的持久性功能?
- 17. 具有多個持久性存儲的核心數據
- 18. redis如何存儲數據
- 19. UIVIew的持久存儲器
- 20. WKWebView Cookie的持久存儲
- 21. Kubernetes - PostgreSQL的持久存儲
- 22. 如何在持久性存儲上創建兩個持久存儲協調器
- 23. 如何在Redis中執行持久性存儲?
- 24. 一些持久性數據不存儲在SCORM
- 25. Android是否永久存儲SQLite數據,還是暫時存儲?
- 26. 合併兩個持久存儲icloud存儲和非icloud存儲
- 27. 本地存儲是否持久?
- 28. Nodejs持久存儲在內存中的數據庫
- 29. 圖形數據庫如何將數據存儲到持久存儲?
- 30. 內存緩存或持久數據存儲[GAEJ]
你不能兩者兼得。無論是有些數據都處於無效狀態,或者您必須等待所有數據寫入磁盤。 – 2010-03-15 20:08:28
這正是我問這個問題的原因。 – allyourcode 2010-03-18 06:45:22