redis的持久化

 1 redis
 2  
 3  持久化
 4     
 5     RDB方式: 手动通过save命令 会把数据保存到创建的目录dump.rdb中
 6     
 7             save指令的相关配置
 8                 dbfilename dump.rdb
 9                         说明: 设置本地数据存放文件名, 默认值为dump.rdb
10                         经验: 通常设置为dump-端口号.rdb
11                 dir
12                         说明: 设置存储.rdb文件的路径
13                         经验: 通常设置成存储空间较大的目录中,目录名称data
14                         
15                 rdbcompression yes
16                         说明: 设置存储至本地数据库时是否压缩数据, 默认为yes, 采用LZF压缩
17                         经验: 通常默认为开启状态,如果设置为no, 可以节省CPU运行时间,但会使存储的文件变大(巨大)
18                         
19                 rdbchecksum yes 
20                         说明: 设置是否进行RDB文件格式 校验, 该校验过程在写文件和读文件过程均进行
21                         
22                         注意: save指令的执行会阻塞当前Redis服务器,直到当前rdb过程完成为止,有可能会造成长时阻塞, 线上环境不建议使用
23                                 bgsave指令是针对save阻塞问题做的优化。Redis内部所有涉及到RDB操作都采用bgsave的方式。save命令可以放弃使用。
24                         
25                 自动执行save命令
26                         在配置文件里配置 save 时间期限  数据变化次数
27                          
28                         注意: save配置要根据实际业务情况进行设置,频率过高或过低都会出现性能问题,结果可能是灾难必的
29                                 save配置中对于second与changes设置通常具有互补 对应关系,尽量不要设置成包仿性关系
30                                 save配置启动后执行的是bgsave操作
31                                 
32                 rdb特殊启动形式
33                         全量复制
34                         服务器运行过程 中重启  debug reload
35                         关闭服务器时指定保存数据   shutdown save
36                         
37                         
38                 RDB优点
39                     RDB是一个紧凑压缩的二进制文件,存储效率较高
40                     RDB内部存储的是redis在某个时间点的数据快照,非常适合用于数据备份 ,全量复制等场景
41                     RDB恢复数据的速度比AOF快很多
42                     应用: 服务器中每X个小时执行bgsave备份,并将RDB文件拷贝到远程机器中,用于灾难恢复,
43                     
44                 RDB缺点:
45                     RDB方式无论是执行指令还是利用配置,无法做到实时持久化,具有较大的可能性丢失数据
46                     bgsave指令每次运行要执行fork操作创建子进程,要牺牲一些性能
47                     Redis的众多版本中未进行RDB文件格式的版本统一,有可能出现各版本服务之间数据格式无法兼容现象
48                     
49                 
50     AOF方式:
51             配置文件: appendonly yes
52                      appendonly always | everysec
53                         
54             AOF重写:
55                 随着命令不断写入AOF,文件会起来越大,为了解决这个问题,Redis引入了AOF重写机制压缩文件体积。AOF文件重写是交
56                 Redis进程内的数据转化为写命令同步到新AOF文件的过程,简单说就是将对同一个数据的若干条命令执行结果转化成最终
57                 结果数据对应的指令进行记录。
58             AOF重写作用
59                 降低磁盘占用量,提高磁盘利用率
60                 提高持久化效率,降低持久化写时间,提高IO性能
61                 降低数据恢复时间,提高数据恢复效率
62                 
63             自动重写触发每件设置
64                 auto-aof-rewrite-min-size size
65                 auto-aof-rewrite-percentage percent
66                 
67             自动重写触发对比参数(运行指令 info Persistence获取具体信息)
68                 aof_current_size
69                 aof_base_size  基础大小
70                 
71             自动重写触发条件
72                 aof_current_size>auto-aof-rewrite-min-size
73                 (aof_current_size-aof_base_size)/aof_base_size>=auto-aof-rewrite-percentage
74     RDB与AOF区别
75     
76         综合比对
77             RDB与AOF的选择实际上是在做一种权衡,每种都有利弊
78             如不能承受数分钟以内的数据丢失,对业务数据非常敏感,选用AOF
79             如能承受数分钟以内的数据丢失,且追求大数据集的恢复速度,选用RDB
80             灾难恢复选用RDB
81             双保险策略,同时开启RDB和AOF,重启后,Redis优先使用AOF来恢复数据,降低丢失数据的量

 

posted @ 2020-05-20 22:53  高汤  阅读(161)  评论(0编辑  收藏  举报