redis詳細
2527 ワード
1.redisとは?Redisは完全オープンソース無料で、BSDプロトコルを遵守し、高性能のkey-value(JAVAのmapはkey=>valueで格納されています.キー=>値(key=>value)対、キーが一意で、1つの値に対応し、値の形式が多様です.)のデータベースです.Redisはデータの永続化をサポートし、メモリのデータをディスクに保存し、再起動時に再ロードして使用することができます.Redisは、単純なkey-valueタイプのデータだけでなく、list、set、zset、hashなどのデータ構造の格納もサポートします.Redisはデータのバックアップ、すなわちmaster-slaveモードのデータバックアップをサポートします.2.redisは何に使いますか.一般的にredisキャッシュとして使われていますが、なぜキャッシュを使うのでしょうか.例えば、システムに2千万人のユーザー情報がある場合、ユーザー情報は基本的に固定されており、入力が少なくなると、すべてのユーザー情報をロードするたびに、データベースを要求し、データベースにクエリー文をコンパイルして実行すると、効率が低下します.このような情報が頻繁に変動せず、データ量が大きい場合、通常は、彼をキャッシュに入れ、毎回数を取る前に判断し、キャッシュが空でなければ、キャッシュから値を取り、空であればデータベースを要求し、データをキャッシュに入れることで、システムアクセス効率を大幅に向上させる3.redisはなぜmysqlよりも速いのか、普通はどこでキャッシュしますか?Redisは純粋なメモリ操作で、読み書きはネットハードディスクよりずっと速いに違いない.Redisは単一スレッドであり、マルチスレッドでのコンテキストの頻繁な切り替えを回避します.Redisデータの構造が簡単で、データに対する操作も比較的簡単で、下位モデルを使用するのは異なっていて、それらの間の下位実現方式とクライアントとの間の通信の応用プロトコルは異なっていて、Redisは直接自分でVMメカニズムを構築して、一般的なシステムがシステム関数を呼び出すと、一定の時間を浪費して移動して多重I/O多重モデルを使用することを要求するため、非ブロックI/O 4.redisが純メモリ操作である以上、永続化できますか?いくつかの方法がありますか?redisはもちろん永続化操作を行うことができます:RDB:指定した時間間隔であなたのデータをスナップショットストレージすることができます.AOF:サーバへの書き込みのたびに記録され、サーバが再起動すると元のデータを復元するためにこれらのコマンドが再実行されます.永続化の構成:
5.永続化からデータをリカバリする方法RDBファイルがあって、またAOFファイルがあって、誰をロードするべきですか?これらのファイルからデータを復元するには、Redisを再起動するだけです.起動時にAOFファイルが存在するかどうかを確認し、存在しない場合はRDBをロードしようとします.AOFが保存しているデータがより完全であるため、上記の分析からAOFが基本的に最大1 sのデータを損失していることがわかります.
RDB
#
save 900 1 // 900s 1 , ,
save 300 10 // 300s 10 ,
save 60 10000
#
dbfilename dump.rdb
#
dir /home/work/app/redis/data/
# ,
stop-writes-on-bgsave-error yes
#
rdbcompression yes
#
rdbchecksum yes
AOF :
# aof
appendonly yes
#
appendfilename "appendonly.aof"
#
appendfsync everysec
# aof
no-appendfsync-on-rewrite no
#
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# aof
aof-load-truncated yes
#
aof-rewrite-incremental-fsync yes
appendfsync everysec :
always: aof, ,
everysec: ,
no:redis OS , ,
everysec , , 1s 。
aof-load-truncated yes , aof , log, , no , , 。
5.永続化からデータをリカバリする方法RDBファイルがあって、またAOFファイルがあって、誰をロードするべきですか?これらのファイルからデータを復元するには、Redisを再起動するだけです.起動時にAOFファイルが存在するかどうかを確認し、存在しない場合はRDBをロードしようとします.AOFが保存しているデータがより完全であるため、上記の分析からAOFが基本的に最大1 sのデータを損失していることがわかります.