redis持続化の取捨選択と選択
2170 ワード
永続化
redisはすべてのデータをメモリに保持し、データの更新は非同期でディスクに保存されます.
永続化方式
RDB
redis --- RDB( )
redis ----RDB( )
トリガメカニズムの主な3つの方式
saveコマンド
クライアントがファイルを保存してRDBファイルバイナリを作成するとブロックされます
ファイルポリシー:新しいRDBファイルが存在する場合、古い複雑さが置き換えられます:O
bgsave
1:bgsave 2:fork(依然としてredisをブロックする)3:create RDB 4:bgsave successfullyサブプロセス
bgsave
background saving started
ファイルポリシーと複雑さは同じです
saveとbgsaveの比較
コマンド#コマンド#
save
bgsave
IOタイプ
同期
非同期
ブロッキング
はい
ブロックされているfork
複雑さ
O
O
メリット
メモリを消費しない
クライアントコマンドをブロックしない
欠点
クライアントコマンドのブロック
forkが必要で、メモリを消費します
RDBの自動生成
save構成:60秒で1万件のデフォルト構成を生成
コンフィギュレーション
seconds
change
save
900
1
save
300
10
save
60
10000
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb
dir ./
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-${port}.rdb
dir /bigdiskpath
トリガメカニズム無視できない方式
1:フルコピー2:debug reload 3:shutdown
mkdir data
mkdir config
rm -rf redis-6382.conf
cp ../redis.conf .
ll
vim redis-6379.conf
#
daemonize yes
pidfile redis-6379.pid
logfile "6379.log"
#save 900 1
#save 300 10
#save 60 10000
dbfilename dump-6379.rdb
redis-server redis-6379.conf
wq
redis-server redis-6379.conf
redis-cli
dbsize
info memory
redis-cli
set hello world
get hello
save
get hello ( )
bgsave
Background saving started
redis-cli shutdown
redis-server redis-6379.conf
dbsize
RDBまとめ
1:RDBはRedisメモリからハードディスクへのスナップショットであり、2:saveは通常redis 3:bgsaveをブロックし、redisをブロックしないが、fork新プロセス4:saveの自動構成がいずれかを満たすと実行される5:一部のトリガメカニズムは無視できない