Redis笔记(五)持久化

2017-03-06  本文已影响164人  huyi0616

1. RDB持久化

两种持久化方式:

Redis多个数据库:

#切换为数据库2
select 2
#查看redis的数据库文件地址
127.0.0.1:6379> config get dir
1) "dir"
2) "/"
127.0.0.1:6379>

1.1 通过save命令实现持久化

1.2 通过bgsave命令

  1. 可以在命令行触发
    • 命令行执行bgsave,立即触发执行
  2. 可以通过服务器端条件触发
    • save seconds ops 即:在seconds秒内发生ops次数就会触发RDB持久化操作
    • Save 900 1 代表900秒内有一次数据变更操作就触发持久化
    • 可以同时配置多条触发条件,如下图:
save的默认参数

1.3 RDB配置项

1.4 RDB还原

2. AOF持久化

graph LR
A((客户端))-->|发送命令|B[服务器]
B[服务器]-->|保存被执行的命令|C[AOF文件]

2.1 AOF配置

############################## APPEND ONLY MODE ###############################  
# 是否开启AOF,默认关闭(no)  
appendonly yes  
  
# 指定 AOF 文件名  
appendfilename appendonly.aof  
  
# Redis支持三种不同的刷写模式:  
# appendfsync always #每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。  
appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。  
# appendfsync no     #完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不被推荐。  
  
#在日志重写时,不进行命令追加操作,而只是将其放在缓冲区里,避免与命令的追加造成DISK IO上的冲突。  
#设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入,默认为no  
no-appendfsync-on-rewrite no   
  
#当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程。  
auto-aof-rewrite-percentage 100  
  
#当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Reids时由于文件尺寸较小导致频繁的重写。  
auto-aof-rewrite-min-size 64mb

2.2 开启AOF

首先找到redis.conf配置文件

Paste_Image.png Paste_Image.png Paste_Image.png

2.3 redis的AOF还原

  1. 设置appendonly yes;
  2. 将appendonly.aof放到dir参数指定的目录;
  3. 启动Redis,Redis会自动加载appendonly.aof文件。

到这里,Redis的持久化部分就完成了。

上一篇 下一篇

猜你喜欢

热点阅读