redis持久化

redis是一种内存型的非关系数据库,key-value方式存储,一旦服务器进程关闭,数据就会丢失,redis提供了两种持久化的方案(RDB,AOF),会把数据保存到磁盘中。

RDB持久化

RDB持久化产生的RDB文件是一个经过压缩的二进制文件,这个文件保存在磁盘中,redis可以通过此文件还原数据库的状态,可以手动执行通过save触发,也可以在配置文件redis.conf中设置定期执行。优点是速度快,适合做备份,主从复制就是基于RDB持久化功能实现。

 

示例

1,添加配置文件

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
dbfilename  dbmp.rdb

2,启动服务端

  redis-server redis.conf

3,启动客户端

  redis-cli -p 6379 #端口号保持一致,6379是默认端口,为了安全可以修改默认文件。

4,新建一个key

  set name cui

5,quit退出,观察/data/6379下有没有dbmp.rdb文件。

  

AOF持久化

AOF能够记录服务器执行的所有变更操作的命令,有些类似于mysql的binlog,在服务器启动时,通过重新执行命令来还原数据集,文件中的命令以redis协议的格式保存,新的记录会被追加到AOF文件中。优点是能够最大程度保证数据记录的完整性,但是会导致记录日志体积过大。

 

示例

1,添加配置文件。

#aof.conf

daemonize yes
port 6379
logfile /data/6379/redis.log
dir /data/6379
appendonly yes
appendfsync everysec

2,启动 服务器和客户端。

3,最好打开两开两个终端,其中一个用tail实时监控appendonly.aof文件,如图。

 

如何在不重启的情况下从rdb数据转换为aof数据?

在redis客户端输入:CONFIG set appenonly yes

 

posted @ 2018-08-07 16:22  崔园樟  阅读(118)  评论(0编辑  收藏  举报