北京 工业网站建设公司价格,公众号开发者登录密码填哪个,网页上的视频如何下载,搭建网站的步骤和顺序Redis的强大功能很大程度上是由于其将所有数据都存储在内存中#xff0c;为了使Redis在重启后仍能保证数据不丢失#xff0c;需要将数据从内存中以某种形式持久化到硬盘中。 Redis支持两种方式的持久化#xff0c;一种是RDB方式#xff0c;一种是AOF方式。其中#xff0c;… Redis的强大功能很大程度上是由于其将所有数据都存储在内存中为了使Redis在重启后仍能保证数据不丢失需要将数据从内存中以某种形式持久化到硬盘中。 Redis支持两种方式的持久化一种是RDB方式一种是AOF方式。其中RDB是Redis的默认持久化方式 一、RDB方式 RDB方式是通过快照完成的当符合一定条件时Redis会自动将内存中的所有数据进行快照并且存储到硬盘上。 1.RDB的快照同步原理 1) Redis使用fork函数复制一份当前进程父进程的副本子进程
2) 父进程继续接收并处理客户端发来的命令而子进程开始将内存中的数据写入到硬盘中的临时文件
3) 当子进程写入完所有数据后会用该临时文件替换旧的RDB文件 2.自动同步 进行快照的条件在配置文件中指定有2个参数构成时间和改动的键的个数当在指定时间内被更改的键的个数大于指定数值时就会进行快照。 默认配置如下 save 900 1 #900秒内如果超过1个key被修改则发起快照保存
save 300 10 #300秒内容如超过10个key被修改则发起快照保存
save 60 10000 默认的rdb的文件路径是在当前目录文件名是dump.rdb可以在redis.conf配置文件中修改路径和文件名分别是dir和dbfilename。 3.手动同步 通过键入save/bgsave命令可以手动同步数据到文件中。建议使用bgsave命令因为save会阻塞 二、AOF方式 1.运行原理 将发送到Redis服务端的每一条命令都记录下来并且保存到硬盘中的AOF文件。 AOF文件的位置和RDB文件的位置相同都是通过dir参数设置默认的文件名是appendonly.aof可以通过appendfilename参数修改。 文件写入默认情况下会先写入到系统的缓存中系统每30秒同步一次才是真正的写入到硬盘。如果在这30秒服务器宕机那么数据也会丢失的Redis可以通过配置来修改同步策略。通过fsync函数强制os写入到磁盘的时机。修改redis.conf文件 appendonly yes //启用aof持久化方式
# appendfsync always //每次收到写命令就立即强制写入磁盘最慢的但是保证完全的持久化不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次在性能和持久化方面做了很好的折中推荐
# appendfsync no //完全依赖os性能最好,持久化没保证 2.优化命令精简文件大小 键入BGREWRITEAOF命令可以重写AOF文件使其过滤中间命令。例如
set test 111
set test 222
set test 333
键入入BGREWRITEAOF命令后AOF文件会删除上边前2行命令因为test 的最终值为333前边的命令是多余的。 3.重写策略的参数设置 auto-aof-rewrite-percentage 100
当前的AOF文件大小超过上一次重写时的AOF文件大小的百分之多少时会再次进行重写如果之前没有重写过则以启动时的AOF文件大小为依据。
auto-aof-rewrite-min-size 64mb
限制了允许重写的最小AOF文件大小通常在AOF文件很小的时候即使其中有些冗余的命令也是可以忽略的。 AOF优缺点 优点比快照方式可靠默认每秒同步一次意味着最多丢失一秒的数据
缺点相同数据集大小AOF文件会比快照文件大 转载于:https://www.cnblogs.com/moonlightL/p/7364617.html