• 11.扩展知识-redis持久化


    内存(兔子):高效、断电数据就会消失

    硬盘(乌龟):读写速度慢于内存的,断电数据依旧存在

    持久化把数据保存在硬盘上

    关系型数据库MySQL-持久化

    任何增删改语句都是在硬盘上做的操作

    断电以后硬盘上的数据还是存在

    非关系型数据库redis

    默认情况下所有的增删改数据都是在内存中进行操作

    断电以后内存中的数据不存在的

    断电以后,redis部分数据会丢失,丢失的数据是保存在内存中的数据。

    概述

    Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
    Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式。可以单独使用其中一种或将二者结合使用。


    1、RDB持久化(默认支持,无需配置)该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。

    2、AOF持久化
    该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。
    3、无持久化
    我们可以通过配置的方式禁用Redis服务器的持久化功能,这样我们就可以将Redis视为一个功能加强版的memcached了。
    4、redis可以同时使用RDB和AOF

    RDB

    RDB:redis的默认持久化机制

    RDB相当于照快照保存的是一种状态

    20G数据----kb快照

    优点

    ①快照保存数据速度极快,还原数据速度极快

    适用于灾难备份(例如失火了,我们可以赶紧使用Upan拷贝走rdb文件)

    缺点

    ①小内存机器不适合使用。

    RDB机制符合要求就会照快照。(随时随地启动),会占用一部分系统资源(突然的),很可能内存不足直接宕机。(宕机后,服务器会关闭,非正常关闭,此前没有快照的数据会丢失

    适用于内存比较充裕的计算机

    RDB何时进行照快照

    服务器正常关闭时会照一次快照   ./bin/redis-cli shutdown

    ②key满足一定条件会照一次快照

    配置"key满足一定条件"-->redis.config

    打开配置文件-->:进入地行模式-->输入"/save 900 1"回车定位到下面的位置:

    说明:

    save 900 1 #900(15分钟)至少有1key发生变化,则dump内存快照。

    save 300 10 #300(5分钟)至少有10key发生变化,则dump内存快照

    save 60 10000 #60(1分钟)至少有10000key发生变化,则dump内存快照

    key发生变化key数据添加、修改、删除)

    例如112:00 – 12:15  ,1key发生变化,在12:15就照一次快照保存

        12:00 – 12:15  ,没有任何key发生变化,在12:15不会照快照

    例如212:00 – 12:05  ,10个(及以上)key发生变化,12:05就照一次快照保存

    12:00 – 12:05  ,9key发生变化,12:05不会照快站,12:15 会照快照

    例如3:  12:00 – 12:01  ,15000key发生变化,12:01会照一次快照保存

    12:00 – 12:01  ,1000key发生变化,12:01不会照快站,12:05会照快照

    AOF

    AOF: 使用日志功能保存数据操作

     默认AOF机制关闭的

      每秒同步(默认):每秒进行一次AOF保存数据。               安全性低比较节省系统资源

    每修改同步:只要有key变化语句,就进行AOF保存数据。比较安全,但是极为浪费效率

    不同步:不进行任何持久化操作                不安全

    AOF操作

    只会保存导致key变化的语句

     AOF配置

    always    #每次有数据修改发生时都会写入AOF文件

    everysec  #每秒钟同步一次,该策略为AOF的缺省策略

    no       #从不同步。高效但是数据不会被持久化

     

    开启AOF机制:

     生成备份文件位置:

    策略的选择:

     测试:

     查看aof文件:

    优点

    ①持续性占用极少量的内存资源

    缺点

    ①日志文件会特别大,不适用于灾难备份(失火了拷贝不完...)

    恢复效率远远低于RDB

    适用于内存比较小的计算机

  • 相关阅读:
    模拟伪造浏览器并获取json数据:
    Inno Setup命令行安装卸载参数
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——EmpDao层代码
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
    struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
    常用的字符串加密解密工具类
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/13364131.html
Copyright © 2020-2023  润新知