标签:数据库 for 请求 图片 转化 blog 使用 合并 创建
dir
配置的指定目录下,文件名是dbfileName
指定。save
和bgsave
。save
:该命令会阻塞Redis服务器,直到RDB的过程完成,已经被废弃,因此线上不建议使用。bgsave
:每次进行RDB过程都会fork一个子进程,由子进程完成RDB的操作,因此阻塞只会发生在fork阶段,一般时间很短。save m n
配置规则自动触发。debug reload
命令重新加载Redis时, 也会自动触发save操作。bgsave
。lastsave
命令可以查看最近一次的RDB时间。bgsave
备份,并把RDB文件拷贝到远程机器或者文件系统中,用于灾难恢复。RDB
恢复数据远远快于AOF
的方式。实时持久化
/秒级持久化
。 因为bgsave每次运行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。AOF
(append only file) 持久化: 以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。 AOF的主要作用是解决了数据持久化的实时性, 目前已经是Redis持久化的主流方式
。appendonly yes
, 默认不开启。 AOF文件名通过appendfilename
配置设置, 默认文件名是appendonly.aof
。 保存路径同RDB持久化方式一致,通过dir
配置指定。命令写入
、文件同步
、文件重写
、重启加载
四个步骤,如下图:set hello world
这条命 令, 在AOF缓冲区会追加如下文本:*3\r\n$3\r\nset\r\n$5\r\nhello\r\n$5\r\nworld\r\n
aof_buf
中, 还有另一个好处, Redis可以提供多种缓冲区 同步硬盘的策略,在性能和安全性方面做出平衡。appendfsync
控制,如下:
always
时, 每次写入都要同步AOF文件, 在一般的SATA硬盘上,Redis只能支持大约几百TPS写入, 显然跟Redis高性能特性背道而驰,不建议配置。no
,由于操作系统每次同步AOF文件的周期不可控,而且会加大每次同步硬盘的数据量,虽然提升了性能,但数据安全性无法保证。everysec
(默认的配置),是建议的同步策略, 也是默认配置,做到兼顾性能和数据安全性。理论上只有在系统突然宕机的情况下丢失1秒的数据(当然,这是不太准确的)。bgrewriteaof
命令。auto-aof-rewrite-min-size
和auto-aof-rewrite-percentage
参数确定自动触发时机。auto-aof-rewrite-min-size
:表示运行AOF重写时文件最小体积, 默认为64MB。auto-aof-rewrite-percentage
:代表当前AOF文件空间(aof_current_size
) 和上一次重写后AOF文件空间(aof_base_size
) 的比值。aof_current_size
和aof_base_size
可以在info Persistence
统计信息中查看。del key1
、 hdel key2
等。重写使用进程内数据直接生成,这样新的AOF文件只保留最终数据的写入命令。lpush list a
、 lpush list b
、lpush listc
可以转化为:lpush list a b c
。为了防止单条命令过大造成客户端缓冲区溢出,对于list
、 set
、 hash
、 zset
等类型操作,以64个元素为界拆分为多条。文本协议
,主要是兼容性好、追加方便、可读性高可认为修改修复。RDB
还是AOF
都是先写入一个临时文件,然后通过重命名
完成文件的替换。标签:数据库 for 请求 图片 转化 blog 使用 合并 创建
原文地址:https://www.cnblogs.com/ysd139856/p/12736990.html