首页 / REDIS / Redis两种持久化方式
Redis两种持久化方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis两种持久化方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2319字,纯文字阅读大概需要4分钟。
内容图文
![Redis两种持久化方式](/upload/InfoBanner/zyjiaocheng/894/e106a29f769f464d91d42a1fe3874210.jpg)
Redis的持久化简单来说就是异步的把内存中的数据保存到硬盘上,Redis提供了两种持久化的方式分别是RDB和AOF。
-
RDB
RDB是一种使用快照方式的持久化,它会把当前的数据像拍照一样照下来,生成RDB文件保存到硬盘,是一个整个的形式,而AOF是一种日志式的持久化,每一条更新都会写入AOF。生成的RDB文件在Redis启动时可以载入,恢复数据,并且该RDB文件是一个有自己格式的二进制文件。
RDB有三种触发机制,分别是save,bgsave,通过配置自动触发。
save:
该方法是同步阻塞的,也就是说在Redis生成好RDB文件前是阻塞的,在使用时要注意这一点,此外如果存在老的RDB文件,新文件会替换老文件。
bgsave:
该方法通过fork方法创建一个子进程来实现生成RDB文件的任务,子进程会使用CPU,IO,内存等资源,在单机多部署,或者数据量大等情况时要考虑到bgsave带来的开销和对性能的影响。同样该方法也是新文件会替换旧文件。
配置自动触发:
save 时间(s) 时间内修改的次数
dbfilename 文件名
stop-write-on-bgsave-error yes bgsave发生错误时停止写入
rdb compression yes 采用压缩存储RDB文件
rdb checksum yes 检验和检验
满足上面的时间内发生的修改次数就会触发生成RDB文件,其他的命令是生成RDB过程中的一些设置。
此外还有一些形式能够触发RDB,及时RDB已经被关闭:
1.主从复制时的全量复制,是以RDB的形式实现的
2.debug reload
3.shutdown
-
AOF
AOF是一种以日志的形式来实现持久化的,在AOF文件中记录操作从而保证能够恢复数据,有点像MYSQL中的redo log。
AOF有三种策略,always是每条命令都fsync到硬盘,everysec是每一秒把缓冲区fsync到硬盘,no是由OS来决定什么时候写入AOF文件。但是如果每一条命令都写入文件在某些情况显的没有必要,比如对string类型的键修改值,只要保存最后一条修改记录就可以了,可以让AOF文件简洁,这种形式叫做AOF重写,是对原生的AOF的优化,类似于编译器对代码的优化。使得AOF文件变小,减少硬盘占用量,加快恢复数据的速度。
AOF重写有两种实现方式:bgrewriteaof命令和配置文件中设置实现。
bgrewriteaof:
具体的AOF重写流程:
配置文件设置:
auto_aof_rewrite_min_size :of文件重写需要的尺寸(aof文件多大时才重写)
auto_aof_rewrite_percentage :aof文件增长率(进行一次重写后下一次多大时再重写)
aof_current_size :aof文件当前大小(字节)
aof_base_size :aof上次启动和重写时的大小(字节)
同时满足一下两个条件时会自动进行AOF重写:
aof_current_size>auto_aof_rewrite_min_size
(aof_current_size-aof_base_size)/aof_base_size>auto_aof_rewrite_percentage
此外还有一些参数:
appendfilename 文件名:设置文件名
appendfsync 策略名:设置策略
no_appendfsync_on_rewrite:AOF重写时是否做AOF正常的append操作
内容总结
以上是互联网集市为您收集整理的Redis两种持久化方式全部内容,希望文章能够帮你解决Redis两种持久化方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。