关于Redis数据库三种持久化方案介绍

目录
  • 一、回顾Redis
  • 二、方案一:bgsave
  • 三、方案二:配置文件rdb
  • 四、方案三:aof
  • 总结

一、回顾Redis

1、redis的特点

redis是一个内存中的数据结构存储系统。优点:内存操作速度比硬盘很快。缺点:但是内存没有办法保存数据。

2、redis提供了磁盘持久化

通过磁盘持久化功能,就可以把内存中的数据,持久化到磁盘当中去。数据就可以长时间的进行保存。

二、方案一:bgsave

1、如何操作

启动redis-cli 客户端,输入一条数据,并输入持久化命令basave就可以完成持久化数据。

2、优缺点

优点:简单。一个命令,就可以将存储内存的数据,持久化到磁盘当中。

缺点:频繁使用命令。每当存储一个数据,就需要使用此命令。

三、方案二:配置文件rdb

rdb是redis自带的持久化方案。默认会开启的。
redis保存到内存的数据,当达到规定的实际、更改Key的数量,会保存在/user/local/redis/bin/dump.rdb的文件中。

1、配置文件解说:

dump.rdb的文件,会根据配置多少秒发生Key的变化,就会把数据存到dump.rdb文件中去。当重新启动时,会先去dump.rdb中去取出数据,放在数据库当中。

1、dbfilename dump.rdb 文件名字
2、dir ./ 目录 。文件存在的位置

900秒之内只要有一个key发生变化,就会把key的值存储到磁盘当中。

2、优缺点:

优点:文件配置后,数据自动化持久化到磁盘。当更改配置后,就不需要在手动配置了。
缺点:不能事实持久化。例如在59秒,10000个数据发生了变化。突然宕机了,那么就会无法持久化。

四、方案三:aof

redis提供的第三种方案:aof
追加apendonly ,把我们输入的命令会追加到 appenonly中去,后台开启了一个线程,每当我们输入一条命令,就会把命令追加到appenonly文件当中。当我们重启项目时,会先来appenonly文件读取内容(相当于我们冲敲打一遍命令)。

1、 修改配置文件:

配置文件:vim /user/local/redis/bin/redis.conf

修改配置后,重启服务:

下面是重启服务前 以及 重启服务后,bin目录:

当我们插入一条数据后:发现.aof文件,会有相应的信息。

2、优缺点

优点:实时记录命令,实施持久化到磁盘

缺点:

时间的积累,aof文件非常的大,时间的积累重启redis,就非常的慢。
当我们频繁使用redis,开了aof。有数万条数据,如果都放在aof当中,aof文件会非常的大。如果宕机了,并重启服务器后,redis会先去aof文件去读取命令,那么会去读数G的文件大小的内容。会非常的慢。

总结

到此这篇关于关于Redis数据库三种持久化方案介绍的文章就介绍到这了,更多相关Redis持久化内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Redis数据持久化方式技术解析

    RDB(Redis DataBases) 1.RDB是什么: 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里. Redis会单独创建(fork)一个子进程来进行持久化,会将数据写入到一个临时文件中,持久化过程都结束了,再用这个临时文件替换上次持久化好的文件.整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式是要比AOF方式更加的高效.RDB的

  • redis持久化的介绍

    1. RDB 1.1 RDB简介 RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. 工作机制:每隔一段时间,就把内存中的数据保存到硬盘上的指定文件中. RDB是默认开启的! Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件.整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能如果需要进行大规模数据的恢复,且对

  • Redis的持久化方案详解

    Redis支持RDB与AOF两种持久化机制,持久化可以避免因进程异常退出或down机导致的数据丢失问题,在下次重启时能利用之前的持久化文件实现数据恢复. RDB持久化 RDB持久化即通过创建快照(压缩的二进制文件)的方式进行持久化,保存某个时间点的全量数据.RDB持久化是Redis默认的持久化方式.RDB持久化的触发包括手动触发与自动触发两种方式. 手动触发 save, 在命令行执行save命令,将以同步的方式创建rdb文件保存快照,会阻塞服务器的主进程,生产环境中不要用 bgsave, 在命令

  • Redis持久化深入详解

    1.概述 Redis 是内存数据库,如果不能将内存中的数据保存到磁盘中,那么一旦服务器进程退出,服务器的数据库数据也会消失,所以Redis提供了持久化的功能,redis分为两种持久化方式:RDB和AOF.有以下几个特点: 1.RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. 2.AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件后台重写,使得AOF文件的

  • 关于Redis数据持久化的概念介绍

    目录 一.数据持久化的概述 1.RDB持久化 2.开启AOF 二 .RDB 和 AOF 的优缺点 1. RDB 持久化优缺点 2. AOF 持久化优缺点 一.数据持久化的概述 Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(或命数据令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复.除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置(NFS) . Redis

  • 关于Redis数据库三种持久化方案介绍

    目录 一.回顾Redis 二.方案一:bgsave 三.方案二:配置文件rdb 四.方案三:aof 总结 一.回顾Redis 1.redis的特点 redis是一个内存中的数据结构存储系统.优点:内存操作速度比硬盘很快.缺点:但是内存没有办法保存数据. 2.redis提供了磁盘持久化 通过磁盘持久化功能,就可以把内存中的数据,持久化到磁盘当中去.数据就可以长时间的进行保存. 二.方案一:bgsave 1.如何操作 启动redis-cli 客户端,输入一条数据,并输入持久化命令basave就可以完

  • redis的2种持久化方案深入讲解

    前言 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务 器. Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为&q

  • Redis两种持久化方案RDB和AOF详解

    本文主要针对Redis 有两种持久化方案RDB和AOF做了详细的分析,希望我们整理的内容能够帮助大家对这个两种方案有更加深入的理解. Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File).如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结.本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化. RDB 详解 RDB 是 Redis 默认的持久化方案.在指定的时间

  • 一文掌握Redis的三种集群方案(小结)

    在开发测试环境中,我们一般搭建Redis的单实例来应对开发测试需求,但是在生产环境,如果对可用性.可靠性要求较高,则需要引入Redis的集群方案.虽然现在各大云平台有提供缓存服务可以直接使用,但了解一下其背后的实现与原理总还是有些必要(比如面试), 本文就一起来学习一下Redis的几种集群方案. Redis支持三种集群方案 主从复制模式 Sentinel(哨兵)模式 Cluster模式 主从复制模式 1. 基本原理 主从复制模式中包含一个主数据库实例(master)与一个或多个从数据库实例(sl

  • 详解Spring Boot 访问Redis的三种方式

    目录 前言 开始准备 RedisTemplate JPA Repository Cache 总结 前言 最近在极客时间上面学习丁雪丰老师的<玩转 Spring 全家桶>,其中讲到访问Redis的方式,我专门把他们抽出来,在一起对比下,体验一下三种方式开发上面的不同, 分别是这三种方式 RedisTemplate JPA Repository Cache 开始准备 开始之前我们需要有Redis安装,我们采用本机Docker运行Redis, 主要命令如下 docker pull redis doc

  • 在 Ubuntu 和 Debian 上启用双因子身份验证的三种备选方案

    如何为你的 SSH 服务器安装三种不同的双因子身份验证方案. 如今,安全比以往更加重要,保护 SSH 服务器是作为系统管理员可以做的最为重要的事情之一.传统地,这意味着禁用密码身份验证而改用 SSH 密钥.无疑这是你首先应该做的,但这并不意味着 SSH 无法变得更加安全. 双因子身份验证就是指需要两种身份验证才能登录.可以是密码和 SSH 密钥,也可以是密钥和第三方服务,比如 Google.这意味着单个验证方法的泄露不会危及服务器. 以下指南是为 SSH 启用双因子验证的三种方式. 当你修改 S

  • Java自动释放锁的三种实现方案

    目录 前言 方案1 使用AutoCloseable 方案2 使用lambda 方案3 代理模式 (1)动态代理 (2)Cglib Show me the code 总结 前言 Python 提供了 try-with-lock,不需要显式地获取和释放锁,非常方便.Java 没有这样的机制,不过我们可以自己实现这个机制. 本文以访问量统计的简化场景为例,介绍相关内容,即: public class VisitCounter { @Getter private long visits = 0; pub

  • .net MVC 连接数据本地数据库三种方法总结

    .net MVC 连接数据本地数据库三种方法 <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" />

  • 用python画圣诞树三种代码示例介绍

    目录 前言 1.方块圣诞树 2.线条圣诞树 3.豪华圣诞树 总结 前言 这篇文章主要介绍了使用Python画了一棵圣诞树的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 如何用python画一个圣诞树呢? Turtle库来画圣诞树. 1.方块圣诞树 import turtle screen = turtle.Screen() screen.setup(375, 700) circle = turtle.Turtle() circle

  • Vue网络请求的三种实现方式介绍

    目录 1.XMLHttpRequest发送请求 2.fetch发送请求 3.axios请求库(Vue中推荐写法) 模拟发送get和post请求 网络请求时发送用户认证信息 请求拦截器 响应拦截器 用户管理 在进行 Vue 的网络请求之前,我们先写一些假数据: users.json: [ { "id": 1, "name": "张三" }, { "id": 2, "name": "李四"

随机推荐