• redis持久化 RDB与AOF


    redis持久化 RDB与AOF

    RDB与AOF区别

    • rdb: 基于快照的持久化,速度更快,一般用做备份,主从复制也是依赖于rdb持久化功能
    • aof:以追加的方式记录redis操作日志的文件,可以最大程度的保证redis数据的安全

    RDB

    前言

    • 前言
      • Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失。
    • RDB持久化
      • 基于内存的数据快照
      • 定期执行数据快照
      • 手动触发数据快照

    RDB实践

    • redis安装链接:https://www.cnblogs.com/yuncong/p/10259211.html

    • 在配置文件中,添加rdb持久化参数

      # 新建配置文件redis-6379.conf
      touch redis/conf/redis-6379.conf
      # 编辑
      vim redis/conf/redis-6379.conf
      
      # 写入内容
      port 6379   		
      daemonize yes 		  
      pidfile /data/6379/redis.pid
      loglevel notice		
      logfile "/data/6379/redis.log"
      dir /data/6379							  #定义持久化文件存储位置
      protected-mode yes 
      dbfilename  dbmp.rdb
      save 900 1							#rdb机制 每900秒 有1个修改记录
      save 300 10 						#每300秒        10个修改记录
      save 60 10000						#每60秒内        10000修改记录
      
      # 注意路径问题,不要将备注也复制进去,
      

      注意:如果报存储文件没有,根据你自己写的路径自己创建

    1. 启动redis服务端

      redis-server redis-6379.conf
      
    2. 登录redis设置key

      redis-cli -p 6379 -a xxx
       # -p  端口号   -a 设置的密码
      # 如果没输入密码,登录之后
      auth 密码
      
    3. 此时检查目录,/data/6379底下没有dbmp.rdb文件

    4. 通过save触发持久化,将数据写入RDB文件

      127.0.0.1:6379> set age 18
      OK
      127.0.0.1:6379> save
      OK
      

    AOF

    前言

    • AOF(append-only log file)
      记录服务器执行的所有变更操作命令(例如set del等),并在服务器启动时,通过重新执行这些命令来还原数据集
      AOF 文件中的命令全部以redis协议的格式保存,新命令追加到文件末尾。
      优点:最大程序保证数据不丢
      缺点:日志记录非常大

    配置

    1. 配置文件

      # 新建配置文件redis-6379.conf
      touch redis/conf/redis-6379.conf
      # 编辑
      vim redis/conf/redis-6379.conf
      # 参数
      daemonize yes
      port 6379
      logfile /data/6379/redis.log
      dir /data/6379
      dbfilename  dbmp.rdb
      requirepass redhat
      save 900 1
      save 300 10
      save 60  10000
      appendonly yes
      appendfsync everysec
      

      参数解析

      appendonly yes
      appendfsync  always    总是修改类的操作
                   everysec   每秒做一次持久化
                   no     依赖于系统自带的缓存大小机制
      
    2. 启动redis

      redis-server redis-6379.conf
      
    3. 检查redis数据目录/data/6379/是否产生了aof文件

      ls /data/6379/
      
    4. 登录redis-cli,写入数据,实时检查aof文件信息

      # 新开一个窗口,观察aof文件信息
      tail -f appendonly.aof
      
      
      # 登录redis-cli
      redis-cli -p 6380 -a xxx
      
      # -p  端口号   -a 设置的密码
      # 如果没输入密码,登录之后
      auth 密码
      
  • 相关阅读:
    PAT 乙级 -- 1011 -- A+B和C
    PAT 乙级 -- 1010 -- 一元多项式求导
    PAT 乙级 -- 1008 -- 数组元素循环右移问题
    PAT 乙级 -- 1009 -- 说反话
    python3.6执行AES加密及解密方法
    Python3.6 AES加密 pycrypto‎ 更新为 pycrypto‎demo | TypeError: Object type <class 'str'> cannot be passed to C code
    windows下python3.6安装pycryto or crypto or pycryptodome与使用
    chkconfig命令
    centos下安装redis
    selenium--基础学习
  • 原文地址:https://www.cnblogs.com/yuncong/p/10293595.html
Copyright © 2020-2023  润新知