目录
存储方式有2种
redis 提供持久化功能,把数据以文件的方式持久化到硬盘中,但是目前大多都是redis配合关系数据库使用,持久化仍然由关系数据完成,redis自身的持久化用于保证数据的安全性,以保证存放在redis的内存数据在没有被全部被持久化到关系中如果redis服务器发生灾难数据的完整性。下面介绍redis两种持久化方式。
快照
1.Snapshotting即快照方式,存储方式在redis.conf中的配置为 save 900 1 #当有一条Keys数据被改变时,900秒刷新到Disk一次
save 300 10 #当有10条Keys数据被改变时,300秒刷新到Disk一次
save 60 10000 #当有10000条Keys数据被改变时,60秒刷新到Disk一次 可根据需求修改,当内存数据的变动满足如上配置时,redis会给但是内存数据做snapshot,完整保存当时内存数据状态,文件存储在dump.rdb中,当做一次新的snapshot时,进程会把此时的内存的snapshot写在一个临时文件中,当临时文件写完,用新写的临时文件替换原有的dump.rdb文件,并删除旧的 RDB 文件。。每次快照持久化都是将内存数据完整写入到磁盘一次,并不是增量的只同步脏数据。如果数据量大的话,而且写操作比较多,必然会引起大量的磁盘io操作,可能会严重影响性能。
另外由于快照方式是在一定间隔时间做一次的,所以如果redis意外down掉的话,就会丢失最后一次快照后的所有修改。
AOF
2.aof方式,aof方式是以日志的方式来存储数据,即它将记录每次对于redis的操作,每一次操作都有一条相应的记录,因此aof方式产生的文件比snapshot方式要大。比如set test 1然后调用 100次 incr test,则aof方式会存储这100次操作,但是对于客户端有用的却只是最后一次修改后的值,如果此时做了snapshot,则dump.rdb文件只是保存了最后一次操作后的值,而appendonly.aof则保存了每一次操作的记录。aof方式在配置文件中的体现
appendonly