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