Redisの学習 - RDB

リピート - RDBを

RDBとは何ですか

RDBの後、データは、スナップショットのハードディスクにメモリ内のRedisます作成、(バイナリ)RDBファイルと呼ばれます

Redisのを再起動するには、あなたのハードディスク上のRDBファイルをロードすると、データ回復のためのメモリにロードされました。

RDBのトリガモード - 主に3つの方法

  • (同期)を保存
  • bgsave(非同期)
  • オートマチック
保存1.(同期)

次のように実装プロセスは以下のとおりです。

  • 他のコマンドが待機をブロックする一方で節約
  • 古いRDBファイルが存在する場合、それは一時ファイルを作成し、古いファイルを置き換えます
  • 時間計算量はO(N)
redis> save
OK
2. bgsave(非同期)

次のように実装プロセスは以下のとおりです。

  • bgsaveを呼び出した後、Linuxは子プロセスを作成するために、フォーク()関数を呼び出します
  • 古いRDBファイルが存在する場合、それは一時ファイルを作成し、古いファイルを置き換えます
  • 時間計算量はO(N)
  • サブプロセス名:Redisの-RDB-bgsave
redis> bgsave
BAckground saving started
自動RDBの動作を構成することにより3
  • 内部等価bgsave
  • Redisのデフォルト設定を保存しました
コンフィギュレーション 第2 変更
保存する 900 1
保存する 300 10
保存する 60 10000

上記の条件のいずれかが作成されます(bgsave)RDBファイル(バイナリ)を満たします。
例えば60秒10,000データの変更、自動的に生成されたファイルをRDB内。

デメリット
書かれた言葉RDBの大量があまりにも頻繁に、頻繁にたくさんのためのハード、ハードの負担に書き込ま生成した場合貧しい制御は、RDBファイルを生成しました。

RDBの設定

構成アイテム デフォルト値 意味
dbfilename dump.rdb RDBスナップショットファイル名
./ スナップショットファイルが生成されたRDBディレクトリ
ストップ・書き込み・オン・bgsaveエラー はい エラー時に停止の書き込みを発生したかどうかbgsave
rdbcompression はい RDBファイルが圧縮されます
rdbchecksum はい RDBかどうかを確認します

RDB最高のコンフィギュレーション

  • 自動運転はRDBに配置されていません
  • dbfilenameダンプ - $ {ポート} .RDB
  • DIR / redisDataPath
  • ストップ・書き込み・オン・bgsaveエラーはい
  • はいrdbcompression
  • はいrdbchecksum

トリガー機構は無視することはできません

  • 主从复制时机的全量复制,master 节点会执行 bgsave
  • debug reload
  • shutdown
  • flushDB 、 flushAll

演示

这里重新写一个 redis-server 的启动配置文件,命名为 redis-6379.conf,放到 /opt/soft/redis/config/ 目录下,修改内容如下,其他配置保持默认不变。

daemonize yes
pidfile /var/run/redis-6379.pid
port 6379
logfile "6379.log"
# save 900 1
# save 300 10
# save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump-6379.rdb
dir /opt/soft/redis/data

启动 redis 服务:

redis-server /opt/soft/redis/config/redis-6379.conf

启动客户端:

redis-cli

执行:

可以看到,在 /opt/soft/redis/data/ 目录下,生成了 RDB文件。

现在我们演示一下自动生成 RDB 文件操作,修改 redis-6379.conf 文件,配置自动 RDB 操作:

save 60 5

然后重启 redis 服务,启动 redis 客户端,执行:

打印日志尾部信息,可以看到在 60 s 内发生了 5 次改变,所以生成了 RDB 文件。


总结

  1. RDB 是 redis 内存到硬盘的快照,用于持久化。
  2. save 通常会阻塞 redis。
  3. bgsave 不会阻塞 redis,但是会 fork 新进程。
  4. save 自动配置满足任一就会被执行。
  5. 有些触发机制不容忽视。

おすすめ

転載: www.cnblogs.com/weixuqin/p/10966763.html