Redis数据持久化的两种方式
  TEZNKK3IfmPf 13天前 15 0

说明:Redis数据是存储在内存中的,Redis服务被关闭,数据是会被清除的。但Redis有数据持久化机制,在默认情况下,停止Redis服务会触发数据持久化机制,将数据保存下来,在下次启动时再读取出来。

Redis中有以下两种数据持久化方式:

RDB

RDB(数据备份文件,Redis Database Backup file),也叫做数据快照,其实就是将所有数据生成为一个快照文件,保存到磁盘中。快照文件为.rdb文件,默认保存在当前运行目录下;

以下四种情况会执行RBD持久化:

  • save命令

  • bgsave命令

  • redis停机时

  • 触发RDB条件时

(1)执行save命令

save命令是主进程执行的,执行该命令会导致其他指令被阻塞;

Redis数据持久化的两种方式

Redis数据持久化的两种方式

(在当前目录下生成.rdb快照文件)
Redis数据持久化的两种方式

(2)执行bgsave命令

bgsave命令是异步执行的,执行该命令,不会影响到其他进程;

Redis数据持久化的两种方式
Redis数据持久化的两种方式

bgsave命令为了保证数据一致性,是在内存里把数据额外拷贝了一份,一份用来生成快照文件,一份用来提供给Redis读写;

Redis数据持久化的两种方式

(3)redis停机时

ctrl+c停止redis服务;

Redis数据持久化的两种方式

(4)触发RDB条件时;

打开redis.conf文件,有关于触发RBD条件的配置;

  • save 3600 1 :表示每3600秒,有1个key发生变化时,触发RDB;

  • save “” :表示不起作用;

另外,还有其他配置:

  • rdbcompression yes:是否开启压缩,建议不开启,开启后会消耗CPU,但磁盘很廉价,没有必要节省;

  • dbfilename dump.rdb:设置RDB文件名称;

  • dir ./:设置RDB文件保存的路径目录;

Redis数据持久化的两种方式

AOF

AOP(Append Only File),追加文件,是把Redis处理的每一个写命令都记录下来,生成AOF文件;

AOP默认是不开启的,在redis.conf文件中,关于AOP的配置有以下几项:

  • appendonly no/yes :是否开启AOP,默认是no:

  • appendfilename “appendonly.aof”:设置appendfile文件的名称;

  • appendfsync always/everysec/no:AOF记录的频率,分别是每次/每秒/操作系统控制

  • auto-aof-rewrite-percentage 100:当AOF文件较上次增长超过100%触发AOF;

  • auto-aof-rewrite-min-size 64mb:设置AOF文件体积最小多大以上触发重写;

使用AOF,先把RBD方式关闭掉;

打开这行配置,关闭RBD

Redis数据持久化的两种方式

打开appendonly

Redis数据持久化的两种方式

appendonly.aof文件的内容

Redis数据持久化的两种方式

appendonly.aof是在redis服务开启后生成的,如果没有生成该文件,需要检查redis.conf文件中的配置是否开启;如果开启后重启redis服务还是没有生成aof文件,可以在开启服务后,执行下面的命令;

redis-cli config set appendonly yes

Redis数据持久化的两种方式

总结

两种持久化方式的特点&区别如下:

Redis数据持久化的两种方式

两种持久化方式各有优点,可以根据实际需要结合使用;

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 13天前 0

暂无评论

推荐阅读
TEZNKK3IfmPf