Redisデータバックアップのリストアとプライマリ・スレーブ・レプリケーション
Redisはメモリ・データベースとして、データ・セキュリティおよびクラスタの導入に関する一連のツールを提供しています.
一.Redisデータベースのデータバックアップとリカバリ
Redisはメモリ型データベースですが、データセキュリティのためには「データ永続化」(ディスクにデータを格納する)というメカニズムが必要で、バックアップにはRDBとAOFの2つのツールが用意されています.
1.RDBバックアップとリカバリ
RDBはスナップショットを利用してデータの永続化を実現し、特定の条件を満たすと、redisはメモリ中のデータを自動的にハードディスクに保存し、redisが起動すると、ディスク上のデータを自動的にメモリにロードしてデータ環境の回復を実現する.
(1)Redis条件でRDBのバックアップを行い、A.プロファイルredisを変更する.conf:
B.Redisの再起動
注意:この方法の実装は、Redisのプライマリ・スレッドが条件トリガ後、forkサブプロセス後、サブプロセスでデータ永続化を完了することです.
(2)RedisはRDBバックアップを強制し、以下のようにする.redis-cliでは、以下のコマンドを使用する.
2.AOFバックアップとリカバリ
AOF(append only file)は、「redisが実行する各命令をディスクファイルに格納する」ことで、データの永続化を実現します.
(1)AOF機能をオンにするデフォルトでは、RedisはAOFをオンにしないので、この機能を使用するにはredis.confでの構成:
AOFファイルの保存場所はRDBと同じで、AOFファイルを設定できます.
AOFの書き換え構成:
注意:「書き換え」は、listに対して3つのpushを行ったなど、既存のaofファイルの再書き込みやその他の操作ではなく、既存の命令を簡略化します.
書き直した結果、
同様に,HASH table,SET,SORTED SETに対しても同様の処理方式である.書き換えることでaofファイルの圧縮を実現した.
もちろん、注意深い友达はAOFの書き換えにredisのリクエストアクセスに影響を与える問題を発見しますが、redisはどのように解決しますか?A.Redisはforkサブプロセスによって書き換えを完了する.B.書き換える時、メモリの中でまずAOFキャッシュを作成し、書き換える同時に、新しい命令を古いAOFファイルとAOFキャッシュに同時に書き込む.C.書き換え完了後、AOFキャッシュの内容をディスクに書き込み、古いAOFファイルに置き換える
(2)AOFバックアップのプロアクティブ化
二.データ移行とプライマリ・スレーブ・レプリケーション
1.直接バックアップファイルデータ移行
Redisのデータ移行は比較的簡単で、ステップは以下の通りである:(1)ターゲットRedisサービスを閉じる;(2)対応するRDBファイルまたはAOFファイルを過去にコピーする.(3)REDISのDIRを設定するか、AOF機能をオンにする.(4)ターゲットREDISサービスを起動する;
2.マスターコピー
プライマリサーバ構成redis.conf:
サーバからredisを構成する.conf:
プライマリ・サーバーとスレーブ・サーバーの起動
また,マスタスレーブレプリケーションによりデータ移行を実現し,ターゲットredisサービスをスレーブサービスに設定し,データ同期を行い,完了後,マスタスレーブ関係をキャンセルしてデータ移行を完了した.
一.Redisデータベースのデータバックアップとリカバリ
Redisはメモリ型データベースですが、データセキュリティのためには「データ永続化」(ディスクにデータを格納する)というメカニズムが必要で、バックアップにはRDBとAOFの2つのツールが用意されています.
1.RDBバックアップとリカバリ
RDBはスナップショットを利用してデータの永続化を実現し、特定の条件を満たすと、redisはメモリ中のデータを自動的にハードディスクに保存し、redisが起動すると、ディスク上のデータを自動的にメモリにロードしてデータ環境の回復を実現する.
(1)Redis条件でRDBのバックアップを行い、A.プロファイルredisを変更する.conf:
save 900 1 # 900 1
save 300 10 # 300 10
save 60 10000 # 60 10000
dir path #path redis
dbfilename rdbname #rdb ( dump.rdb)
B.Redisの再起動
注意:この方法の実装は、Redisのプライマリ・スレッドが条件トリガ後、forkサブプロセス後、サブプロセスでデータ永続化を完了することです.
(2)RedisはRDBバックアップを強制し、以下のようにする.redis-cliでは、以下のコマンドを使用する.
redis-cli>SAVE #
redis-cli>BGSAVE # fork
2.AOFバックアップとリカバリ
AOF(append only file)は、「redisが実行する各命令をディスクファイルに格納する」ことで、データの永続化を実現します.
(1)AOF機能をオンにするデフォルトでは、RedisはAOFをオンにしないので、この機能を使用するにはredis.confでの構成:
appendonly yes
AOFファイルの保存場所はRDBと同じで、AOFファイルを設定できます.
dir path #
appendfilename appendonly.aof #aof aof
AOFの書き換え構成:
auto-aof-rewrite-percentage 100 # AOF AOF , , AOF
auto-aof-rewrite-min-size 64mb # AOF
注意:「書き換え」は、listに対して3つのpushを行ったなど、既存のaofファイルの再書き込みやその他の操作ではなく、既存の命令を簡略化します.
lpush li_key 1
lpush li_key 2
lpush li_key 3
書き直した結果、
lpush li_key 1 2 3
同様に,HASH table,SET,SORTED SETに対しても同様の処理方式である.書き換えることでaofファイルの圧縮を実現した.
もちろん、注意深い友达はAOFの書き換えにredisのリクエストアクセスに影響を与える問題を発見しますが、redisはどのように解決しますか?A.Redisはforkサブプロセスによって書き換えを完了する.B.書き換える時、メモリの中でまずAOFキャッシュを作成し、書き換える同時に、新しい命令を古いAOFファイルとAOFキャッシュに同時に書き込む.C.書き換え完了後、AOFキャッシュの内容をディスクに書き込み、古いAOFファイルに置き換える
(2)AOFバックアップのプロアクティブ化
redis-cli> BGREWRITEAOF
二.データ移行とプライマリ・スレーブ・レプリケーション
1.直接バックアップファイルデータ移行
Redisのデータ移行は比較的簡単で、ステップは以下の通りである:(1)ターゲットRedisサービスを閉じる;(2)対応するRDBファイルまたはAOFファイルを過去にコピーする.(3)REDISのDIRを設定するか、AOF機能をオンにする.(4)ターゲットREDISサービスを起動する;
2.マスターコピー
プライマリサーバ構成redis.conf:
bind 127.0.0.1 192.168.1.158 # IP ip
サーバからredisを構成する.conf:
slaveof <masterip> <masterport> #masterip 192.168.1.158 masterport 6379
プライマリ・サーバーとスレーブ・サーバーの起動
また,マスタスレーブレプリケーションによりデータ移行を実現し,ターゲットredisサービスをスレーブサービスに設定し,データ同期を行い,完了後,マスタスレーブ関係をキャンセルしてデータ移行を完了した.