# 时间策略
save 900 1
save 300 10
save 60 10000
# 文件名称
xxx.rdb
# 文件保存路径
dir /home/redis/xxx/
# 如果持久化出错,主进程是否停止写入
stop-writes-on-bgsave-error yes
# 是否压缩
rdbcompression no
# 导入时是否检查
rdbchecksum yes
重点讲下时间策略
你是否听过大学生毕业论文写了一晚上,然后突然停电,论文白写的故事。
实际上现在的word文档已经有了自动保存的功能,可以防止这种情况。想象一下由你来设计这个机制,你会如何设计。
每10秒保存一次,行不行?当然可以,每次丢失一定是10秒内的数据,岂不妙哉。
问题是,我写了五分钟论文,小伙伴叫我打游戏去了,一玩就是三小时。这段时间内,我的电脑还在每10秒保存一次,这是不是多少有点浪费资源?打游戏的时候电脑性能最重要了!!!
于是时间策略诞生了,简单来说就是:如果你写得频繁,那我就保存得频繁;如果你写得慢,那我就相应地过段时间再保存。
再来看
save 900 1
save 300 10
save 60 10000
这套策略解释就是:如果60秒内写入了一万条数据就保存一次;如果没达到,那300秒内写入10条数据,也给保存一次;如果还没达到,那900秒内产生一条数据,就保存一次。
我们把它换种描述会更好理解:
如果你数据写得很快,那我60秒就保存一次;
如果你数据写得不够快,那我就300秒保存一次;
如果你基本不写,那我就900秒保存一次;
如果你真不写,那我也真不保存;
文件名称和文件路径没什么好讲的。。。
持久化出错是否停止写入,这个很重要,这个可以用于控制你的流程,保证数据的一致性,一般来讲开着就好。
是否压缩开不开都行,开的话就在备份的时候压缩,快照会小一点。不开的话可以节省压缩这一操作,能节省一定的服务器性能。快照管理得当的话,可以考虑不压缩,牺牲磁盘总比牺牲cpu要好一点。