redis 持久化
Posted luofc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis 持久化相关的知识,希望对你有一定的参考价值。
1.俩种持久化机制
持久化将数据从内存中持久化到硬盘空间。防止服务器宕机时候,存储在内存中的数据丢失
快照rdb:持久化文件 dump.rdb 默认
aof:持久化文件:appendonly.aof
redis 中配置存储文件的路径:配置文件中
dbfilename dump.rdb
appendonlyfilename appendonly.aof
dir /var/lib/redis
目前默认rdb 开启 aof 关闭。可以使用命令行热修改切换持久化方式
config set appendonly yes
然后退出 shutdown, 修改redis.conf 中 appendonly 为 yes。重启redis
如何退出:
正常停用退出:redis-cli: shutdown, 会将数据持久化到硬盘文件
非正常退出:.kill 9 退出, 不会持久化
如果是已经运行的程序中修改持久化的方式,一定要用命令行热修改方式,它会将数据以新的方式保存下来。保证数据不会丢失。
2. rdb 持久化 = 快照
rdb 持久化能够在指定的时间间隔对数据进行快照存储,保存了某个时间点的数据集,适合用户数据备份,适合灾备。数据文件方便进行传输以及恢复。fork子进程将数据保存到硬盘中。父进程不用做io操作。最大化redis的性能
缺点:(1) 宕机情况下,数据恢复可能不完整
(2) 如果在备份数据时候,数据量足够大。主进程fork子进程的过程很耗时,可能会导致 、 redis在一些毫秒级内不能响应客户端的请求。
设置自动保存的操作:可以设置多个
save 60 100 // 60 秒内至少有100个操作
手动保存:
bgsave 后台备份
不明白的地方怎么配置每小时备份过去24小时的数据???
3.aof 的持久化
aof 持久化 记录每次对服务器的写操作。aof 命令以redis协议最佳保存每次的的操作到文件末尾
优点:(1) 数据的完整性比rdb好
(2) aof 可以在数据文件太大的时候,自动的对aof文件进行重写,重写后的新的aof包含了
恢复当前数据集所需的最小的命令集合。重写时候是安全的。
(3) aof 文件保存了所有数据的写操作。假设执行了 flushall 命令,只要aof文件未被重
写。修改文件移除末尾flushall 命令
以上是关于redis 持久化的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段