redis的持久化--快照持久化(SNAPSHOTTING)

来源:互联网 发布:福建师范大学软件学院 编辑:程序博客网 时间:2024/06/05 07:39

存储快照持久化数据的文件:dump.rdb
备份特点:全部备份
redis.conf文件
快照持久化频率:单位秒
这里写图片描述
save 900 1 [15分钟内,有超过1个及以上的元素被修改,查询不算]
save 300 1 [5分钟内 ,有超过10个及以上的元素被修改,查询不算]
save 900 1 [1分钟内,有超过10000个及以上的元素被修改,查询不算]
以上条件成立,则进行快照保存,由此可见如果操作非常频繁,redis效率会比较低,这需要开发者进行平衡,这里面其实暗含有容损机制,无论操作频繁与否,允许部分数据丢失,这个容损的数量尽量靠近或固定,假如断电,操作不太频繁的话15分钟损失的数据量可能和操作非常频繁的时候一分钟损失的数据量相当,所以才有此设计。
文件里可以修改快照保存的位置,指定的文件不存在时,redis自动创建。
这种持久化是对整体的持久化,如果发生突发情况,比如突然断电,那么数据损失就会比较大,那么有人会说把保存时间设置的小一点不就行了?的确,时间间隔越小,被修改的数据就越少,丢失的就越少,但是这样做会存在很大的效率问题,不要忘了这种快照保存方式可是整体备份,保存频率过高,占用系统资源就越大,那么redis就不用干其他事情了,光保存数据了。

手动快照持久化:
这里写图片描述
name:0>set aa 1010
OK
这里写图片描述
从上述内容可以看出,快照持久化并未发生
下面我们手动持久化
这里写图片描述
我的端口是6380,如果你的端口是6379,那么就可以删掉-p 6380
该命令格式是:./redis-cli -h xxx.xxx.xxx.xxx -p xxxx bgsave

其他命令:
返回上次成功保存数据的时间戳
[root@localhost bin]# ./redis-cli -p 6380 lastsave
(integer) 1507903553
同步数据并停止服务
[root@localhost bin]#./redis-cli -p 6380 shutdown

补充:有人问能不能关闭快照持久化,可以,你设置不可能事件或者干脆不写save命令就可以啦
比如save 1 1000000000000000000
或者直接不出现save x x也可以