Redis 數據持久化的方案的實現

一、需要了解的基礎

1、Redis實現數據持久化的兩種實現方式:

RDB:指定的時間間隔內保存數據快照

AOF:先把命令追加到操作日志的尾部,保存所有的歷史操作



二、RDB 實現 Redis數據持久化(默認方式)


1、編輯 redis.conf

注:使用whereis redis命令查看redis安裝在哪個位置,然后進入redis安裝目錄的etc目錄下,編輯redis.conf。


2、默認備份的時間間隔


3、默認備份的文件名稱


4、默認備份的RDB文件位置



5、像這樣,就是其中的備份文件



6、當然,也可以主動觸發保存redis數據快照,操作如下


注:當然,如果是線上的redis要主動備份,建議使用bgsave命令,更多關于RDB的原理和使用?

http://www.chenxm.cc/post/526.html?segmentfault


7、缺點:

因為是特定條件下進行一次持久化(每隔一段時間),就可能會導致一旦redis崩潰,再次回復時,可能會導致部分數據丟失。

注:如果設置的備份時間間隔較短,比較耗服務器性能,如果設置的備份時間間隔較長,又可能會導致數據恢復時部分數據丟失。



三、AOF持久化方案

先把命令追加到操作日志的尾部,保存所有的歷史操作。


1、相比于RDB持久化方案的優點:

(1)數據非常完整,故障恢復丟失數據少

(2)可對歷史操作進行處理


2、如何開啟AOF持久化模式

將redis.conf 配置文件中的appendonly 參數改為yes 后,則redis開始啟動AOF數據持久化模式


設置AOF同步的方式,這里設置的默認的每秒同步一次



3、開啟AOF同步模式后,備份文件是這樣的


從上面可以看出,它記錄了從我開啟AOF后的所有操作命令


4、缺點

(1)因為AOF模式要把每一步redis命令都記錄下來,所以就導致文件的體積會很大

(2)而且會導致速度低于RDB,并且恢復速度慢


四、RDB模式和AOF模式的恢復

Redis崩潰后,重啟redis會自動找備份恢復文件,下圖大致描述了redis重啟后的過程。




總結:

在實際應用中,根據場景不同,選擇的方式也不盡相同,各有優缺點。但我個人看法,RDB的快照方式相比于AOF的逐步記錄模式要好一些。至于RDB丟數據的風險,我們完全可以通過控制備份的時間間隔來避免這個問題。當然,也是可以兩種方式同時使用的,只是大多不會這么做。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282280.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282280.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282280.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

div剩余空間填滿

div里有一個固定高度的div使其另一個div填滿空間,外層div設置的高度為百分比,給外層一個相對定位,設置想要充滿的div高度為100%,其中這次有個要求,使其填充div里面的內容距離固定高度div30px;給填充div一個…

快速生成快遞柜唯一取件碼

曾管理一萬多臺快遞柜,優化了系統中生成唯一取件碼的算法。項目:https://github.com/nnhy/PickupCode新建項目,添加 Nuget 應用 NewLife.Redis ,借助其Add去重能力。代碼如下:private static void Main(string[] args)…

自動調試自動編譯五分鐘上手

Browsersync能讓瀏覽器實時、快速響應您的文件更改(html、js、css、sass、less等)并自動刷新頁面。更重要的是 Browsersync可以同時在PC、平板、手機等設備下進項調試。 無論您是前端還是后端工程師,使用它將提高您30%的工作效率。 MD5加密&a…

六臺機器搭建RedisCluster分布式集群

一、RedisCluster結構二、redis Cluster集群搭建1、修改redis.conf中需要更改的配置 bind 改成當前ip cluster-enabled yes #允許redis集群 cluster-config-file nodes-6379.conf #集群配置文件 cluster-node-timeout 15000 #集群中節點允許失聯的最大時間15s 注&#xff1…

C# 的 async/await 其實是stackless coroutine

注: 最近Java 19引入的虛擬線程火熱,還有很多人羨慕 go的 coroutine,很多同學一直有一個疑問: C# 有 虛擬線程或者 coroutine嗎,下面的這個回答可以解決問題。這里節選的是知乎上的hez2010 的高贊回答:http…

推薦使用typora

最近在網上接觸到一款全新的markdown寫作工具——typora。 現在它已經是我的主要寫作工具了。 甚至我也也會利用它安排自己的工作和任務。 typora介紹 下載鏈接特色:可以即時渲染markdown語法的書寫工具總算找到了,終于不用再糾結發生語法錯誤&#xff0…

中文詞頻統計

import jiebafoopen(text.txt,r,encodingutf-8)tfo.read()fo.close() wordsjieba.cut(t)dic{}for w in words: if len(w)1: continue else: dic[w]dic.get(w,0)1wc list(dic.items())wc.sort(keylambda x:x[1],reverse True)for i in range(20): print(wc[i]) 轉載于:https:/…

實現html錨點的兩種方式

1,a標簽name屬性。 2,使用標簽的id屬性;

mysql實現讀寫分離

一、環境介紹: LNMP vmware workstation pro配置了3個虛擬機,均安裝了LNMP環境: Pro :192.168.0.105 Pro2:192.168.0.106 Pro3:192.168.0.107 二、Mysql主從復制同步的實現 https://blo…

[BZOJ1509][NOI2003]逃學的小孩

1509: [NOI2003]逃學的小孩 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 968 Solved: 489[Submit][Status][Discuss]Description Input 第一行是兩個整數N(3 ? N ? 200000)和M,分別表示居住點總數和街道總數。以下M行,每行…

十一隨筆|讀書

十一放假回老家前三天一直下雨,沒法幫父母干農活,陰雨天氣農村就閑下來了親戚間走動,長輩們談論孩子不好好學習,孩子抱怨學習沒用大學畢業照樣找不到工作。現在大學生就業現狀確實不容樂觀,當下不好好學習沒有拖底&…

yii之behaviors

BaseController: protected $actions [*];protected $except [];protected $mustlogin [];protected $verbs [];// 行為過濾public function behaviors(){return [access > [class > \yii\filters\AccessControl::className(),only > $this->actions, // 針對哪…

關閉 Visual Studio 2013 的 Browser Link 功能

什么是 Browser Link ? 這個 Browser Link 的功能就是通過一個腳本文件架起流程器和 Visual Studio IDE 之前的一個通信橋梁, 在啟用 Browser Link 后, Visual Studio 會給網站注入一個 IHttpModule 模塊對象, 然后在每個頁面都會注冊一段上…

Groove list操作-轉數組,collect,each等

2019獨角獸企業重金招聘Python工程師標準>>> list轉換為數組 List list [a,b,c,d] def strs list as String[] println strs[0] 使用了Groovy語言,就能時不時的感受到Groovy語言在編碼風格上與Java語言的不同。當然,我們首先感受到的可能就…

支持多種操作系統的新一代服務主機

一個應用需要常駐操作系統后臺服務,可選框架有WindowsServiceLifeTime和SystemdLifeTime,但需要區別對待不同操作系統且需要另外寫命令安裝。NewLife.Agent自2008年設計以來,一直秉著簡單易用的原則,不僅實現了服務框架&#xff0…

c#中的奇異遞歸模式

奇異遞歸模式,Curiously Recurring Template Pattern (CRTP) ,作用是能使父類中能夠使用子類的信息。下面是我對這個問題的分析過程。 按照一般的繼承關系,父類是無法訪問到子類的,所以很自然的想到了c#中的泛型,將子類…

面試中get和post的區別

get和post的區別主要有以下幾方面:1、url可見性: get,參數url可見; post,url參數不可見2、數據傳輸上: get,通過拼接url進行傳遞參數; post,通過body體傳輸參數3、緩存性…

程序猿與線性代數

逛微博,摸到了一堆寶:關于線性代數學習的文章。先是發現了陳曉鳴(http://weibo.com/acumon),前百度資深project師,終身學習者。再找到“文藝復興記”(http://weibo.com/weidagang)。…

Verilog MIPS32 CPU(八)-- 控制器

Verilog MIPS32 CPU(一)-- PC寄存器Verilog MIPS32 CPU(二)-- RegfilesVerilog MIPS32 CPU(三)-- ALUVerilog MIPS32 CPU(四)-- RAMVerilog MIPS32 CPU(五)--…

[翻譯]Dapr 長程測試和混沌測試

介紹這是Dapr的特色項目,具體參見:https://github.com/dapr/test-infra/issues/11 ,在全天候運行的應用程序中保持Dapr可靠性至關重要。在部署真正的應用程序之前,可以通過在受控的混沌環境中構建,部署和操作此類應用程…