十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
持久化原理:
专注于为中小企业提供做网站、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业桥东免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。AOF<二进制文件>比RDB方式有更好的持久性。
redis会将每一个收到的写命令都通过write函数追加到文件最后,类似msyql的binlog。
当redis重启时,会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。
优点:可以保持更高的数据完整性。
如果设置追加file的时间是1s,那么redis发生故障,最多会丢失1s的数据;
如果日志写入不完整,支持redis-check-aof来进行日志修复;
AOF文件没被rewrite之前(文件过大时会对命令进行合并重写),
可以删除其中的某些命令(比如误操作的flushall)。
缺点:AOF文件比RDB文件大,且恢复速度慢。
AOF默认关闭。
配置文件相关参数:
appendonly yes
appendfilename "" #AOF保存的文件名
同步方式相关的配置:
appendfsync always #一旦插入命令,立即同步到磁盘,完全的持久化,但是速度慢,不推荐
appendfsync everysec #AOF每秒进行同步
appendfsync no #不自动同步,性能最好,但是持久化没有保证
存储过程:
将快照内容以命令的形式追加到AOF文件中,
所以随着追加,AOF文件会越来越大,保存的AOF文件存储了执行的所有命令,
所以可以进行修改文件来撤销输错的命令(在重写之前,如果重写了就没有办法了)
对AOF文件进行重写:(解决AOF文件越来越大的问题)
redis-cli -h ip -p port bgrewriteaof
重写命令的操作过程:
在当前的快照保存结束后,开启一个子进程,将AOF文件进行重写,
合并set命令等操作到一个临时文件,达到缩小文件大小的目的。
重写结束后,将临时文件替换为新的AOF文件。
(重写过程中如果有新的redis操作命令,会提交到缓存中,重写结束后追加到AOF文件内)
说明:redis2.4以上版本,重写机制自动触发。触发的相关redis.conf配置如下:
auto-aof-rewrite-percentage 100
当目前的AOF文件大小超过上一次重写文件大小的百分之几时进行重写,
如果没有重启过,则以启动时的AOF文件大小为依据)
auto-aof-rewrite-min-size 64mb(允许重写的最小AOF文件大小);
数据恢复:
重启redis服务,前提是配置文件必须设置了appendonly yes,然后会从appendfile的文件加载文件。
反之是从RDB中加载数据的。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。