【のRedis] RDB-dump.rdb

説明

RDB(databsesをRedisの)

Redisの永続的なデータ・モード(デフォルト)のいずれかの下、RDBモードであり、それは単に、その後、一定の条件をトリガーする、子プロセスはdump.rdb(スナップショットファイル)を生成を開始します


ソースコードを解析する第二に、

2.1のsrc / rdb.c:rdbSaveBackground


コードのロジック:

1.fork()、子プロセスを作成します

2.子供はrdbSave関数を呼び出し、実際のダンプ操作を行います


2.2のsrc / rdb.c:


コードのロジック:

1.一時ファイル、tmp- {PID} .RDBを作成します。

snprintf(TMPFILE、256 "temp- %D .RDB" 、(INT )GETPID())。

2.スナップショットデータを一時ファイルに書き込まれます

rioInitWithFile(&RDB、FP);

もし(rdbSaveRio(&RDB、およびエラー)== C_ERR){

    エラー番号=エラー。

    後藤WERR;

}

3.データが実際にディスクに書き込まれます

IF (にfflush(FP)== EOF GOTO WERR; //キャッシュされたデータのブラシユーザースペース、カーネル空間データ・キャッシュに

IF - (FSYNC(FILENO(FP))== 1 GOTO //キャッシュデータの実際の物理ディスクにおけるブラシのカーネル空間へ、WERR

IF (fcloseを(FP)== EOF GOTO WERR; //近いファイルは、書き込み動作が完了しています

4.一時ファイル名前を変更dump.rdb

名前の変更(TMPFILE、ファイル名)


第三に、トリガ条件の設定

900 1保存

300 10保存

60 10000保存

手段:

1 900秒以内に来る二次データの変更があります

10データの変更300秒があります。

60秒以内万二次データの変更

上記は、それが動作をトリガする条件を満たすはdump.rdbスナップショットファイルを生成します

公開された140元の記事 ウォン称賛28 ビュー180 000 +

おすすめ

転載: blog.csdn.net/qq_16097611/article/details/79940171