本文主要是介绍redis数据备份的两种机制rdb aof,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
redis-server --port 6380
redis-cli -h ip -p 6380
object enconding key#返回key的实际数据类型
bgrewriteaof重写aof文件去重
rdb容易丢数据 硬盘开销大
aof三种策略 always everysec no
Redis的数据回写机制分同步和异步两种,
同步回写即SAVE命令,主进程直接向磁盘回写数据。在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的。
异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭。
由于这样做不需要主进程阻塞,系统不会假死,一般默认会采用这个方法。
默认的快照设置:
save 900 1 #当有一条Keys数据被改变时,900秒刷新到Disk一次
save 300 10 #当有10条Keys数据被改变时,300秒刷新到Disk一次
save 60 10000 #当有10000条Keys数据被改变时,60秒刷新到Disk一次
appendonly yes #启用AOF持久化方式
appendfilename appendonly.aof #AOF文件的名称,默认为appendonly.aof
appendfsync always #每次收到写命令就立即强制写入磁盘,是最有保证的完全的持久化,但速度也是最慢的,一般不推荐使用。
appendfsync everysec #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,是受推荐的方式。
appendfsync no #完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不被推荐。
AOF的完全持久化方式同时也带来了另一个问题,持久化文件会变得越来越大。
比如我们调用INCR test命令100次,文件中就必须保存全部的100条命令,但其实99条都是多余的。
因为要恢复数据库的状态其实文件中保存一条SET test 100就够了。
为了压缩AOF的持久化文件,Redis提供了bgrewriteaof命令。
从机配置
slaveof ip port
slave-read-only yes
这篇关于redis数据备份的两种机制rdb aof的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!