redis RDB持続化
1961 ワード
RDB:redisデータメモリからハードディスクへのスナップショット、データ持続化用
一、saveコマンド持続化(同期)実行方法 redisクライアントは を発行する.新しい一時RDBファイル を生成する save実行後、古いRDBファイルを新しいRDBファイル に置き換える
複雑度:O(n) 欠点: の利点:余分なメモリが消費されない 二、bgsaveコマンド持続化(非同期)実行方法 redisクライアントは を発行する. linuxの を完了する.サブプロセス生成が終了すると、メインプロセス に通知する.
複雑度:O(n) 欠点: を消費するの利点:「ブロックしない」redisクライアントコマンド( 三、構成ファイルの自動持続化 RDBファイルの構成パラメータを自動的に生成します(デフォルト) フォーマット: は複数の構成が可能で、いずれかを満たすと有効となり、 が実行する.は、 を無効にすることができる.は、 をキャンセルすることもできる.推奨:save構成を無効にする 生成されたRDBファイルの名前を指定します(デフォルト) ファイル名 提案: を直接覆うことを防止する.
生成されたRDBファイルディレクトリの場所を指定します(デフォルト) は、現在のディレクトリであるredisを指す.configのディレクトリ RDBファイルの構成(デフォルト) 四、その他RDBファイルの生成をトリガする方法全量複製例えば主従複製 debug reload shutdown
五、RDBの欠点消費時間、消費性能 データO(N) を消費する. I/O性能消耗大 制御不能、データ損失 実行を保存中にダウンタイムが発生すると、データは を失う.
一、saveコマンド持続化(同期)
save
コマンドsave
は同期コマンドであり、データ量が大きすぎるとブロックされます.bgsave
コマンドfork()
を使用してredisのサブプロセスを生成し、RDBファイルの生成Background saving terminated with success
fork()
はメモリfork()
はブロックするが、速度は十分に速く、合理的な使用には影響しない)save
save 900 1 # 900 (15 ) , 1 key
save 300 10 # 300 (5 ) , 10 key
save 60 10000 # 60 , 10000 key
bgsave
コマンド#
を直接使用してsave構成を注釈し、save save ''
を構成するsave構成dbfilename dump.rdb
dump.rdb
dbfilename dump-${port}.rdb
ポート番号区分に参加し、異なるredisがdir ./
stop-writes-on-bgsave-error yes # bgsave
rdbcompression yes # RDB
rdbchecksum yes # RDB
五、RDBの欠点
fork()
はメモリ