zoukankan      html  css  js  c++  java
  • 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重启后数据文件的选择如下

       

  • 相关阅读:
    java代码操作word模板并生成PDF
    接口httpClient 以及HttpClient与CloseableHttpClient之间的区别
    公司项目启动的时候连接数据库问题
    浏览器报400Bad Request异常
    数据库配置文件默认数据库连接设置
    代码中的mysql语法问题
    java代码实现文件的下载功能
    SringBoot启动报日志配置错误logback检测异常
    动态拼接手机号
    [面试] 面试官问你的职业生涯规划是什么,该如何回答?
  • 原文地址:https://www.cnblogs.com/tjqBlog/p/9599061.html
Copyright © 2011-2022 走看看