• redis学习4--redis持久化


      持久化有效的避免因进程退出造成的数据丢失问题,当下次重启时利用持久化文件即可实现数据恢复,redis持久化方式有RDB和AOF两种。

    1 RDB

      RDB持久化是把当前进程数据生成快照保存到硬盘过程,可以手动触发也可以自动触发。

      save命令:  基本没人用了,会阻塞当前Redis服务器,直到RDB过程完成为止。

      bgsave:     redis执行fork操作子进程,持久化任务由子进程负责,阻塞只发生在fork阶段,时间很短。

      RDB生成的数据文件保存在 配置文件的dir目录下,文件名也可以修改(默认dump.rdb)

      

    2 AOF

      AOF以独立的日志记录方式记录每次写命令,重启之后再重新执行AOF文件的命令,即可以达到数据恢复的目的,AOF可以解决数据持久化的实时性,是redis主流的持久化方式。 

      开启AOF,并指定AOF文件名(默认是appendonly.aof),文件保存路径和RDB一样 都在dir之下。

      

       AOF文件同步策略,由配置文件中的appendfsync参数控制,值有下列三个选项

        always:   每次写入都要同步AOF文件(不建议配置,会阻碍redis性能)

        everysec:  建议的配置(也是默认的配置),理论上最多丢失一秒内数据

        no:       不建议配置,数据得不到安全性保证

       从写机制

        时间长了,命令会越来越多,aof文件也就会越来越大,重写机制就是为了解决这个问题的,文件变小的原因1:如set a 11,set a 22,只保留最终的命令,即set a 22,  2: 合并命令,如:rpush key a, rpush key b,会被合并为 rpush key a b。

      重写触发时机

      

      redis重启后数据文件的选择如下

       

  • 相关阅读:
    TREEVIEW拖拽对应修改目录
    shell脚本总结
    Linux将程序添加到服务的方法(通用【但最好还是用systemd】)
    Git客户端命令总结
    如何设置vim中tab键缩进---配置初始化设置
    在终端上创建Java项目及编译和运行
    Linux下Git安装及配置
    如何在eclipse的配置文件里指定jdk路径
    Redis总结和提取常用的和重要的命令
    Redis为什么是单线程
  • 原文地址:https://www.cnblogs.com/tjqBlog/p/9599061.html
Copyright © 2020-2023  润新知