Redisの一般的なデータ型と永続化メカニズム
3752 ワード
概要
Redisは「key-value」型データ向けの分散型NoSQLデータベースシステムで、**String、hash、list、set、socket set**の5種類のデータ型フォーマットをサポートしています.文字列(String) Redisの文字列はバイトシーケンスです.一般的な操作コマンドにはget、setなどがありますリスト(list) Redisリスト知識文字列リストは、挿入順にソートされます.Redisリストのヘッダまたは末尾に要素を追加したり、キューとして使用したりできます.ハッシュ/ハッシュ Redisハッシュは、キー値ペアの集合です.Redisハッシュは、文字列フィールドと文字列値との間のマッピングですが、フィールド値は文字列のみであり、他のタイプはサポートされません.したがって、オブジェクトを表すために使用されます.アプリケーションシーン:ユーザの基本情報等を記憶する.無秩序集合タイプ(set) redisのsetはStringタイプの無秩序な集合であり、set要素は最大2の32次方-1要素を含むことができる.set集合タイプにより、n個のkey間の並列集合、交差、差集合などを迅速に取り出すことができる.アプリケーションシーン:2つのQQ番号の共通の友达の数を取り出します.秩序化集合タイプ(sorted set) setと同様にsorted setもstringタイプ要素の集合であり、重複要素のない文字列の集合である.エレメントは秩序化されているので、秩序化された集合を使用すると、非常に速い速度(O(log(N))でエレメントを追加、削除、更新することができ、ソートも得意です.≪適用シーン|Apply Scene|emdw≫:すべてのユーザーの投票数が最も高い上位10位を取得します.
なぜ永続化するのか
Redisデータを再利用したり、システム障害を防止したりするためには、Redisのデータをディスク領域に書き込む必要があります.つまり、永続化です.
RDB持続化とAOF持続化
Redisは2つの異なる持続化方法を提供した. RDB永続化(Reidsのメモリ内のデータベース記録タイミングdumpをディスク上のRDB永続化とする原理) . AOF(append only file)永続化(Reidsの操作ログを追加でファイルに書き込む原理) .
RDB持続化
RDBはRedisのデフォルトの永続化方式である.Redisのプロファイルが見つかりました:redis.conf
AOF(append only file)持続化
Redisでconf構成では、次のように設定されています.
Redis4.0 RDB-AOFハイブリッド永続化フォーマットが追加され、この機能がオンになった後、AOF書き換えによって生成されたファイルはRDBフォーマットのコンテンツとAOFフォーマットのコンテンツを同時に含み、RDBフォーマットのコンテンツは既存のデータを記録するために使用され、AOFフォーマットのメモリは最近変化したデータを記録するために使用される.これにより、Redisは、RDBの永続化とAOFの永続化の利点を同時に兼ねることができる(書き換えファイルを迅速に生成したり、問題が発生した場合にデータを迅速にロードしたりすることができる).
Redisは「key-value」型データ向けの分散型NoSQLデータベースシステムで、**String、hash、list、set、socket set**の5種類のデータ型フォーマットをサポートしています.
なぜ永続化するのか
Redisデータを再利用したり、システム障害を防止したりするためには、Redisのデータをディスク領域に書き込む必要があります.つまり、永続化です.
RDB持続化とAOF持続化
Redisは2つの異なる持続化方法を提供した.
RDB持続化
RDBはRedisのデフォルトの永続化方式である.Redisのプロファイルが見つかりました:redis.conf
# ,Redis , BGSAVE 。
# save <seconds> <changes>
# save , ,Redis BGSAVE , :900 、300 10 、60 10000
save 900 1
save 300 10
save 60 10000
AOF(append only file)持続化
Redisでconf構成では、次のように設定されています.
# redis AOF , no yes AOF
appendonly no
# AOF
appendfilename "appendonly.aof"
# AOF ,always Redis fsync , redis ;everysec fsync, ;no fsync,Linux 30
# appendfsync always
appendfsync everysec
# appendfsync no
# BGREWRITEAOF , yes fsync, , IO , 。redis no
no-appendfsync-on-rewrite no
# AOF AOF , BGREWRITEAOF 。
auto-aof-rewrite-percentage 100
# AOF BGREWRITEAOF , Reids BGREWRITEAOF。
auto-aof-rewrite-min-size 64mb
# Redis , ( , )
aof-load-truncated yes
Redis4.0 RDB-AOFハイブリッド永続化フォーマットが追加され、この機能がオンになった後、AOF書き換えによって生成されたファイルはRDBフォーマットのコンテンツとAOFフォーマットのコンテンツを同時に含み、RDBフォーマットのコンテンツは既存のデータを記録するために使用され、AOFフォーマットのメモリは最近変化したデータを記録するために使用される.これにより、Redisは、RDBの永続化とAOFの永続化の利点を同時に兼ねることができる(書き換えファイルを迅速に生成したり、問題が発生した場合にデータを迅速にロードしたりすることができる).