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 密码

redis持久化 RDB与AOF的更多相关文章

  1. Linux - redis持久化RDB与AOF

    目录 Linux - redis持久化RDB与AOF RDB持久化 redis持久化之AOF redis不重启,切换RDB备份到AOF备份 确保redis版本在2.2以上 实验环境准备 备份这个rdb ...

  2. Redis持久化----RDB和AOF 的区别

    关于Redis说点什么,目前都是使用Redis作为数据缓存,缓存的目标主要是那些需要经常访问的数据,或计算复杂而耗时的数据.缓存的效果就是减少了数据库读的次数,减少了复杂数据的计算次数,从而提高了服务 ...

  3. redis持久化RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  4. redis持久化RDB与AOF

    redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. RDB持久化 ...

  5. 配置方案:Redis持久化RDB和AOF

    Redis持久化方案 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘.当下次Redis重启时,利 ...

  6. Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?

    原文http://www.ymq.io/2018/03/24/redis/ Redis是一种高级key-value数据库.数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支 ...

  7. Redis持久化RDB和AOF原理

    前言: redis持久化方式分为两种:RDB快照和AOF方式(默认为RDB模式),当Redis服务器重启的时候,会自动恢复数据,优先从AOF中恢复,其次才从RDB中恢复   一.RDB快照模式 RDB ...

  8. 15.3,redis持久化RDB与AOF

    redis持久化 Redis是一种内存型数据库,一旦服务器进程退出,数据库的数据就会丢失,为了解决这个问题,Redis提供了两种持久化的方案,将内存中的数据保存到磁盘中,避免数据的丢失. RDB持久化 ...

  9. Redis(二)、Redis持久化RDB和AOF

    一.Redis两种持久化方式 对Redis而言,其数据是保存在内存中的,一旦机器宕机,内存中的数据会丢失,因此需要将数据异步持久化到硬盘中保存.这样,即使机器宕机,数据能从硬盘中恢复. 常见的数据持久 ...

随机推荐

  1. LinkedHashSet、Map、Map接口HashMap、Hashtable,TreeSet、TreeMap、如何选择使用集合实现类,Collections工具类

    一.Set接口实现类LinkedHashSet 实现继承图: 1.LinkedHashSet的全面说明 1) LinkedHashSet是 HashSet的子类 2) LinkedHashSet底层是 ...

  2. 浅谈Java正则表达式

    正则表达式我们都知道,它定义了字符串的模式,可以用来搜索.编辑或处理文本.我们在某些特定场景中用起来是非常方便的.它等于是给我们划定了一个范围,让我们可以精准的匹配到我们想要的结果.比如我想判断一个几 ...

  3. Scala概述及环境配置

    一.概述 1.1 为什么要学Scala? Spark是新一代的内存级大数据的计算框架,是大数据学习的重要内容.随着Spark的兴起,同时也带动了Scala的学习,因为Spark就是Scala编写的.为 ...

  4. nginx实现后端tomcat的负载均衡调度

    一.编译安装nginx 请跳转查阅:编译安装nginx 二.tomcat的二进制安装 请跳转查阅:二进制安装tomcat 三.配置nginx代理 # cat /apps/nginx/conf/ngin ...

  5. 500行代码了解Mecached缓存客户端驱动原理

    原创不易,求分享.求一键三连 缓存一般是用来加速数据访问的效率,在获取数据耗时高的场景下使用缓存可以有效的提高数据获取的效率. 比如,先从memcached中获取数据,如果没有则查询mysql中的数据 ...

  6. python篇第8天【运算符】

    第7天休息 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以 ...

  7. Solution -「CF 1380F」Strange Addition

    \(\mathcal{Description}\)   Link.   定义两个数在进行加法时,进位单独作为一位.例如: .   给定一个 \(n\) 为数和 \(m\) 次修改操作,每次修改会修改 ...

  8. Python:pathlib模块

    Blog:博客园 个人 关于panthlib模块 pathlib模块提供表示文件系统路径的类,其语义适用于不同的操作系统.路径类被分为提供纯计算操作而没有 I/O 的纯路径,以及从纯路径继承而来但提供 ...

  9. Docker配置Pytorch深度学习环境

    拉取镜像 $ docker pull pytorch/pytorch:1.9.1-cuda11.1-cudnn8-devel 查看本地已有镜像 $ docker images 创建容器 $ docke ...

  10. 【C# 程序集】.net core 3.0中动态卸载|卸载程序集

    原文:https://docs.microsoft.com/zh-cn/dotnet/core/dependency-loading/understanding-assemblyloadcontext ...