• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Redis教程
    Redis安裝和使用
    Redis數據類型操作命令
    高級話題
    Jedis操作Redis

    Redis持久化

     

     

    持久化概述

     

    持久化可以理解為存儲,就是將數據存儲到一個不會丟失的地方,如果把數據放在內存中,電腦關閉或重啟數據就會丟失,所以放在內存中的數據不是持久化的,而放在磁盤就算是一種持久化。

     

    Redis 的數據存儲在內存中,內存是瞬時的,如果 linux 宕機或重啟,又或者 Redis 崩潰或重啟,所有的內存數據都會丟失,為解決這個問題,Redis 提供兩種機制對數據進行持久化存儲,便于發生故障后能迅速恢復數據。

     

     

    持久化方式

     

    ● RDB 方式

     

    A、什么是 RDB 方式?

     

    Redis  Database(RDB),就是在指定的時間間隔內將內存中的數據集快照寫入磁盤,數據恢復時將快照文件直接再讀到內存。

     

    RDB 保存了在某個時間點的數據集(全部數據)。存儲在一個二進制文件中,只有一個文件。默認是 dump.rdb。RDB 技術非常適合做備份,可以保存最近一個小時,一天,一個月的全部數據。保存數據是在單獨的進程中寫文件,不影響 Redis 的正常使用。RDB 恢復數據時比其他 AOF 速度快。

     

    B、 如何實現?

     

    RDB 方式的數據持久化,僅需在 redis.conf 文件中配置即可,默認配置是啟用的。

     

    在配置文件 redis.conf 中搜索 SNAPSHOTTING, 查找在注釋開始和結束之間的關于 RDB的配置說明。配 SNAPSHOTTING 置地方有三處。

     

    ①:配置執行 RDB 生成快照文件的時間策略。

     

    對 Redis 進行設置, 讓它在“ N 秒內數據集至少有 M 個 key 改動”這一條件被滿足時, 自動保存一次數據集。

     

    配置格式:save <seconds> <changes> save 900 1

     

    save 300 10

     

    save 60 10000

     

    ②:dbfilename:設置 RDB 的文件名,默認文件名為 dump.rdb

     

    ③:dir:指定 RDB 文件的存儲位置,默認是 ./ 當前目錄

     

    配置步驟:

     

    ①:查看 ps -ef | grep redis ,如果 redis 服務啟動,先停止。

     

     

    ②:修改 redis.conf 文件, 修改前先備份,執行 cp redis.conf bak_redis.conf

     

     

    查看默認啟用的 RDB 文件

     

     

    ③:編輯 redis.conf 增加 save 配置, 修改文件名等。vim redis.conf

     

     

    修改的內容:

     

     

    把原來的默認的 dump.rdb 刪除,修改 redis.conf 后,重新啟動 redis

     

     

    ④:在 20 秒內容,修改三個 key 的值

     

     

    ⑤:查看生成的 rdb 文件

     

     

    C、 總結

     

    優點:由于存儲的是數據快照文件,恢復數據很方便,也比較快缺點:

     

    1)會丟失最后一次快照以后更改的數據。如果你的應用能容忍一定數據的丟失,那么使用 rdb 是不錯的選擇;如果你不能容忍一定數據的丟失,使用 rdb 就不是一個很好的選擇。

     

    2)由于需要經常操作磁盤,RDB 會分出一個子進程。如果你的 redis 數據庫很大的話, 子進程占用比較多的時間,并且可能會影響 Redis  暫停服務一段時間(millisecond  級別),如果你的數據庫超級大并且你的服務器 CPU 比較弱,有可能是會達到一秒。

     

    ● AOF 方式

     

    A、什么是 AOF 方式

     

    Append-only File(AOF),Redis 每次接收到一條改變數據的命令時,它將把該命令寫到一個 AOF 文件中(只記錄寫操作,讀操作不記錄),當 Redis 重啟時,它通過執行 AOF 文件中所有的命令來恢復數據。

     

    B、 如何實現

     

    AOF 方式的數據持久化,僅需在 redis.conf 文件中配置即可配置項:

     

    ①:appendonly:默認是 no,改成 yes 即開啟了 aof 持久化

     

    ②:appendfilename:指定 AOF 文件名,默認文件名為 appendonly.aof

     

    ③:dir : 指定 RDB 和 AOF 文件存放的目錄,默認是 ./

     

    ④:appendfsync:配置向 aof 文件寫命令數據的策略:

     

    no:不主動進行同步操作,而是完全交由操作系統來做(即每 30 秒一次),比較快但不是很安全。

     

    always:每次執行寫入都會執行同步,慢一些但是比較安全。

     

    everysec:每秒執行一次同步操作,比較平衡,介于速度和安全之間。這是默認項。

     

    ⑤:auto-aof-rewrite-min-size:允許重寫的最小 AOF 文件大小,默認是 64M 。當 aof 文件大于 64M 時,開始整理 aop 文件, 去掉無用的操作命令。縮小 aop 文件。

     

    例 1:

     

    ①:停止運行的 redis , 備份要修改的 redis.conf

     

    ②:查看 redis 安裝目錄/src 下有無 .aof 文件。 默認是在 redis 的當前目錄

     

     

    ③:編輯 redis.conf

     

    設置 appendonly 為 yes 即可。

     

    查看 appendfsync 的當前策略。

     

     

    查看 appendfilname 的文件名稱

     

     

    ④:在 redis 客戶端執行 寫入命令

     

     

    ⑤ 查看 aof 文件

     

     

     

    ● 總結

     

    append-only 文件是另一個可以提供完全數據保障的方案;

     

    2.AOF 文件會在操作過程中變得越來越大。比如,如果你做一百次加法計算,最后你只會在數據庫里面得到最終的數值,但是在你的 AOF 里面會存在 100 次記錄,其中 99 條記錄對最終的結果是無用的;但 Redis 支持在不影響服務的前提下在后臺重構 AOF 文件,讓文件得以整理變小 

     

    3.可以同時使用這兩種方式,redis 默認優先加載 aof 文件(aof 數據最完整);

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏