标签:数据库 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