zoukankan      html  css  js  c++  java
  • redis 数据持久化 aof方式

    redis持久化-Append-only file(缩写aof)的方式

    本质:把用户执行的每个  ”写“ 指令(增加、修改、删除)都备份到文件中,还原数据的时候就是执行具体写指令。

    打开redis的运行目录,选择数据库2(select 2,是空集)可以看到dump.rdb的上次保存时间是今天中午1:58

    添加2条数据:

    再查看dump.rdb,保存时间是现在(说明从1:58到现在没有修改过key)

    在dump.rdb中可以看到刚才保存进入的数据,但是当添加第三个数据addr3时,dump.rdb的修改时间是不会变的,没有达到快照备份的频率。

    现在选择标号为3数据库,添加2条数据,此时还未达到快照持久化的频率,所以默认dump.rdb中还没有这两个数据,dump.rdb的修改时间应该还是4点多

    此时就可以手动发起快照持久化,可以看到备份文件修改时间已变。

     aof持久化默认是关闭的,开启aof持久化会清空redis内部的数据:

    进入到redis.conf文件,修改appendonly no---》appendonly yes,并放开aof保存写指令的文件(备份文件)的注释appendfilename  appendonly.aof这一行,默认的备份文件名字可以修改。

    配置文件修改需要删除旧的进程,开启新的进程,ps -A|grep redis查看redis相关的进程,进程号为1178,用命令kill -9 1178强制杀掉redis进程,重启redis服务,可以看到数据库都被清空了:

    (可以看到redis目录下出现了appendonly.aof备份文件)

    由于刚才给牛总演示,所以appendonly.aof里存在了165个字节数据,备份时间是2:34,

    vi appendonly.aof查看备份文件,可以看到该文件把所有的写操作全部记录下来

    再往数据库中添加2条数据set addr beijing   set sex 1,可以看到appendonly.aof是实时备份的:

     aof追加备份的备份频率,打开redis.conf,可以看到有三个可以设置的备份频率:

    appendfsync always: 每搞一个”写指令“就备份一次,数据最安全,系统性能最低

    appendfsync everysec:每秒钟备份一次

    appendfsync no:服务器不忙的时候备份,忙了 就等会。性能最高,数据不安全。

     Aof备份文件的优化处理:压缩appendonly.aof文件

    执行incr 命令创建num元素并每次递增1,递增10次,num值变成10,

    每秒一次的话,会备份10次,查看备份文件,可知incr 命令都被备份,备份文件大小为460个字节

    执行./redis-cli bgrewriteaof压缩备份文件,一个文件从460字节---->154字节,

    其实这10个命令就相当于一个命令:set num 10,redis会自动把多个incr指令变成一个set 指令。查看appendonly.aof可以看到备份保存的指令已经变了。

    快照持久化保存在了dump.rdb中,aof持久化保存到了appendonly.aof中,他们两个是互补的,快照持久化做大的备份, aof做细致的备份,数据还原的时候把快照持久化和aof持久化一起还原。如果把这两个文件拷贝给别的机器,当服务器启动的时候,redis会把这2个文件从硬盘读取到redis内存

  • 相关阅读:
    go语言时间格式化----go语言学习笔记(二)
    go语言模拟post请求----go语言学习笔记(一)
    beego框架配置mysql
    django---request在url中传值请求其他服务的get请求,获取请求头
    nginx+uwsgi+ubuntu 部署django
    集成jenkins自动安装apk文件
    python数据可视化之flask+echarts(二)
    httpd 2.2 实验小结
    CentOS 6安装详解及PXE 安装
    有关安全知识点及实验小结
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/6054968.html
Copyright © 2011-2022 走看看