首页

关于Redis的RDB及AOF两种不同存储方式及redis.conf相关配置说明

标签:redis,内存数据库,rdb,aof,快照,日志追加,存储策略模式     发布时间:2017-07-25   

一、前言

基于Redis的非关系数据库有RDB和AOF两种不同数据存储方式,RDB是基于将数据每隔一段时间快照的方式记录到dump.rdb二进制文件中,AOF是将每次写操作已日志的方式记录到appendonly.aof文件中,默认是RDB方式,redis.conf具体默认配置如下所示

daemonize no@b@@b@pidfile /var/run/redis.pid@b@@b@port 6379@b@@b@timeout 0@b@@b@loglevel verbose@b@@b@logfile stdout@b@@b@databases 16@b@@b@save 900 1@b@save 300 10@b@save 60 10000@b@@b@rdbcompression yes@b@@b@# 默认配置文件名称dump.rdb@b@dbfilename dump.rdb@b@@b@dir ./@b@@b@slave-serve-stale-data yes@b@@b@#默认AOF持久化关闭@b@appendonly no@b@@b@# The name of the append only file (default: "appendonly.aof")@b@appendfilename appendonly.aof@b@@b@#appendfsync always@b@appendfsync everysec@b@# appendfsync no@b@@b@no-appendfsync-on-rewrite no@b@@b@auto-aof-rewrite-percentage 100@b@auto-aof-rewrite-min-size 64mb@b@@b@slowlog-log-slower-than 10000@b@@b@slowlog-max-len 1024@b@@b@vm-enabled no@b@# vm-enabled yes@b@@b@vm-swap-file /tmp/redis.swap@b@@b@vm-max-memory 0@b@@b@vm-page-size 32@b@@b@vm-pages 134217728@b@@b@vm-max-threads 4@b@@b@hash-max-zipmap-entries 512@b@hash-max-zipmap-value 64@b@@b@list-max-ziplist-entries 512@b@list-max-ziplist-value 64@b@@b@set-max-intset-entries 512@b@@b@zset-max-ziplist-entries 128@b@zset-max-ziplist-value 64@b@@b@activerehashing yes

二、相关配置具体说明

1.RDB方式(默认,二进制文件持久化,文件大小小) - 指定的时间定时持久化数据到dump.rdb二进制文件(快照方式)

save 900 1         # 15分钟变更一次@b@save 300 10        # 5分钟变更10次@b@save 60 10000      # 1分钟变更1万次@b@@b@# 默认配置文件名称dump.rdb@b@dbfilename dump.rdb

2.AOF方式 (日志追加方式持久化,文件大)- 可以通过三种不同的方式进行追加,默认appendfsync no,需要设置为yes

appendfsync yes@b@@b@#appendfsync always (同步持久化,每次发生数据变更会被立即记录到磁盘,性能差但数据完整性比较好)@b@@b@appendfsync everysec (异步操作,每秒记录,如果一秒钟内宕机,有数据丢失)@b@@b@#appendfsync no  (不同步)

3.缓存方式(无持久化) - 在默认配置为RDB的情况下(appendonly为no),注释掉save配置项,改为save ""

#save 900 1@b@#save 300 10@b@#save 60 10000@b@@b@save ""

三、使用场景对比

RDB应用场景:相同存储数据内容,AOF方式远大于RDB方式,因此启动加载恢复速度慢于RDB,所以需要快速启动执行选择且空间有要求的情况下选择RDB方式,或者是备份情况下

AOF应用场景:分布式集群cluster,数据库文件可读性等要去场合

缓存方式(无持久化):缓存数据,性能优化