首页 » NoSQL » redis.conf配置详解

redis.conf配置详解

原文 http://blog.csdn.net/rocksteadypro/article/details/79215279

2018-02-01 02:01:29阅读(270)

快照(RDB):

  备份当前瞬间Redis在内存中的数据记录。

  对于快照备份而言,如果当前Redis的数据量大,备份可能 造成Redis卡顿,但是恢复重启是比较快速的。

 只追加文件(AOF):

  当redis执行写命令后,再一定的条件下将执行过的写命令一次保存在redis的文件中,将来就可以依次执行那些保存的命令恢复redis数据。

  对于AOF备份而言,它只是追加写入命令,所以备份一般不会造成Redis卡顿,但是恢复重启要执行更多的命令,备份条件可能也很大,使用者使用的时候要注意。


 Redis中允许使用其中的一种、同时使用两种,或者两种都不用,所以具体使用何种方法进行备份和持久化是用户可以通过配置决定的。

redis.conf配置文件
################################## SNAPSHOTTING ####################################################
........
save 900 1
save 300 10
save 60 10000
........
stop-writes-on-bgsave-error yes
........
rdbchecksum yes
........
dbfilename dump.rdb
........
############################## AOOEND   ONLY   MODE #################################################
........
appendonly no
........
appendfilename "appendonly.aof"
........
# appendfsync always
appendfsync everysec
# appendfsync no
........
no-appendfsync-on-rewrite no
........
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
........
aof-load-truncated yes
........

 对于快照模式的备份而言,它的配置项如下:

save 900 1
save 300 10
save 60 10000
这三项配置的含义分别是:

当900秒执行1个写命令时,启用快照备份当300秒执行10个写命令时,启用快照备份当60秒内执行10000个写命令时,启用快照备份

 Redis执行save命令时候,将禁止吸入命令。


stop-writes-on-bgsave-error yes
 bgsave命令,他是一种异步保存命令,也就是系统将启动另外一条进程,把Redis的数据保存到对应的数据中。他和save命令最大的不同是它不会阻塞客户端的写入,也就是在执行bgsave的时候,允许客户端继续 读/写Redis。在默认情况下,如果Redis执行bgsave失败后,Redis将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘,否则就会没人注意带灾难的发生,如果后台保存进程重新启动工作了,Redis也将自动允许写操作。


rdbchecksum yes
 这个命令意思是  是否对rbd文件进行检验,如果是将对rdb文件检验。从dbfilename的配置可以知道,rdb文件实际是redis持久化的数据文件。

 

dbfilename dump.rdb
 它是数据文件。当采用快照模式备份(持久化)时,redis将使用它保存数据,将来可以使用它恢复数据。


appendonly no
 如果appendonly配置为no,则不启用AOF方式进行备份。如果appendonly配置为yes,则以AOF方式备份Redis数据,那么此时Redis会按照配置,在特定的时候执行追加命令,用以备份数据。


appendfilename "appendonly.aof"
 这里定义追加的写入文件为appendonly.aof,采用AOF追加文件备份的时候命令都会写到这里。


# appendfsync always
appendfsync everysec
# appendfsync no
 AOF文件和Redis命令时同步频率的,假设配置文always,其含义为当前redis执行命令的时候,则同时同步到AOF文件,这样会使得Redis同步刷新AOF,造成缓慢。而采用evarysec则代表每秒同步一次命令到AOF文件。采用no的时候,则由客户端调用命令执行备份,Redis本身不备份文件。

 对于采用always配置的时候,每次命令都会持久化,它的好处在于安全,坏处在于每次都持久化性能较差。

 采用evarysec则每秒同步一次,安全性不如always,备份可能会丢失1秒以内的命令,但是隐患也不大,安全度尚可,性能可以得到保障。

 采用no,则性能有所保障,但是由于失去备份,所以安全性比较差。

 建议采用默认配置everysec,这样在保证性能的同时,也在一定程度上保证了安全性。


no-appendfsync-on-rewrite no
 它指定是否在后台AOF文件rewrite(重写)期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写AOF文件期间会存在大量磁盘I/O,此时,在某些Linux系统中,调用fsync可能会阻塞。


auto-aof-rewrite-percentage 100
 它在指定Redis重写AOF文件的条件,默认为100,表示与上次rewrite的AOF文件大小相比,当前AOF文件增长量超过上次AOF文件的100%

时,就会触发background rewrite。若配置为0,则会禁用自动rewrite。


auto-aof-rewrite-min-size 64mb
 它指定触发rewrite的AOF文件大小。若AOF文件小于该值,即使当前文件的增量比例达到 auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite。


aof-load-truncated yes
 Redis在恢复时可能会忽略最后一条可能存在未的指令,默认为yes。即在AOF写入时,可能存在指令写错的问题(突然断电、写了一半),这种情况下yes会log并继续,而no会直接恢复失败。

 



最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹