`
youyu4
  • 浏览: 440105 次
社区版块
存档分类
最新评论

redis持久化

 
阅读更多

redis持久化

 

redis持久化只要分为

1. RDB,定期将数据持久化到rdb文件

2. AOF,每次数据变化都写入到aof文件中

 

 

RDB持久化

 

    这是redis默认的持久化策略,每隔一段时间就会将数据写入到dump.rdb文件中。

 

原理

redis会定期fork一个子进程,然后子进程将数据写到一个临时rdb文件,当子进程写完临时文件,就替换原来的rdb文件

 

自动持久化

增加配置 save N M,N秒内发生M次变化,redis就会抓快照到磁盘

 

#    if(在60秒之内有10000个keys发生变化时){

#      进行镜像备份

#    }else if(在300秒之内有10个keys发生了变化){

#      进行镜像备份

#    }else if(在900秒之内有1个keys发生了变化){

#      进行镜像备份

#    }

 

save 900 1

save 300 10

save 60 10000

 

手动持久化

执行 save 或 bgsave 命令做快照

 

优缺点

优点:备份恢复简单,速度快,相对比AOF启动效率高

缺点:有可能会丢失几分钟数据

 

 

AOF持久化

 

原理

每次执行执行一个修改命令,都会添加到aof文件中,每次重启redis,都会根据aof,将数据恢复到关闭前的最后一刻,aof将会越来越大

 

aof自动持久化

1. appendonly yes,开启aof

2. appendfile name,aof文件名

3. aof策略

appendfsync always,每句都持久化
appendfsync everysec,每秒持久化一次(默认)
appendfsync no,由操作系统决定

 

手动重写aof文件

由于aof文件越来越大,有时需要用 bgrewriteaof,将最小序列的命令写到磁盘,从而缩小aof的大小

 

优缺点

优点:更好的保证数据的完整性

缺点:日志文件相对RDB快照文件要大的多

 

aof文件损坏修复方法

1. aof做个备份

2. 对原aof进行,$redis-check-aof-fix

3. diff -u比较两个文件

 

 

不重启redis从RDB持久化切换到AOF持久化 :
redis-cli> CONFIG SET appendonly yes      #启用AOF
redis-cli> CONFIG SET save ""         #关闭RDB

不能直接修改配置文件,重启数据库,否则数据库中数据就为空了。

 

 

如何选择使用rdb还是aof

1. 官方建议是同时使用两种,这样可以提供更可靠的持久化方案。

2. 如果你非常在意你的数据,但是也还可以接受灾难带来的几分钟的数据丢失,那么你可以仅使用 RDB。
3. 很多用户仅使用了 AOF,但是我们建议,既然 RDB 可以时不时的给数据做个完整的快照,并且提供更快的重启,而且在某些情况下 bug 也要少,你最好还是使用 RDB。
注:综合以上原因,我们希望可以在未来(长远计划)统一 AOF 和 RDB 成一种持久化模式。

 

 

 

参考:

http://wiki.jikexueyuan.com/project/redis/rdb.html

http://lizhenliang.blog.51cto.com/7876557/1656305

https://my.oschina.net/u/780876/blog/544061

http://www.dataguru.cn/thread-160158-1-1.html

 

分享到:
评论

相关推荐

    redis持久化方式

    ### Redis持久化方式详解 Redis 是一款高性能的键值存储系统,因其卓越的读写速度、丰富的数据结构以及灵活的应用场景而备受青睐。为了保证数据的安全性和持久性,Redis 提供了两种主要的持久化机制:RDB 快照...

    Redis持久化、主从与哨兵架构详解(1)

    Redis持久化、主从与哨兵架构详解 Redis持久化是指将Redis中的数据保存到磁盘中,以便在Redis服务器重启或崩溃后可以恢复数据。Redis提供了两种持久化方式:RDB快照和AOFAppend-Only File。 RDB快照 RDB快照是...

    06_redis 持久化.pdf

    Redis持久化是指利用永久性存储介质将Redis内存中的数据保存到磁盘上的过程,以防止数据的意外丢失,确保数据的安全性。其主要目的就是在Redis服务出现意外情况下,能够通过持久化存储的数据进行恢复,保证业务的...

    02-Redis持久化、主从与哨兵架构详解-ev.rar

    02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构详解02-Redis持久化、主从与哨兵架构...

    Redis的持久化方案

    Redis持久化的配置和管理涉及多个方面的知识,包括但不限于配置文件的设置、内存管理、文件系统的性能、以及操作系统的相关策略等。用户应充分了解这些知识点,以确保Redis能够稳定且高效地运行。

    Redis持久化、主从与哨兵架构详解.pdf

    Redis持久化机制包括RDB快照和AOF(Append Only File)两种方式,它们有不同的特点和使用场景,下面将详细分析这两种机制。 首先,RDB是通过创建数据集的快照来进行持久化的,在默认情况下,Redis会在内存中存储...

    02-Redis持久化、主从与哨兵架构详解.zip

    Redis是一款高性能的键值对内存数据库,常用于缓存、消息队列以及数据持久化等场景。本资料包主要探讨Redis的三个核心概念:持久化、主从复制和哨兵架构,这些都是确保Redis高可用性和数据安全的重要机制。 首先,...

    Redis 持久化之RDB和AOF.doc

    Redis 持久化是确保数据安全的重要机制,它提供了两种主要的方法:RDB(Redis Database)和 AOF(Append Only File)。RDB 是一种快照式的持久化方式,而 AOF 则记录每次写操作的日志。 RDB 持久化在特定条件下将...

    Redis windows 测试redis持久化功能1

    Redis 是一个高性能的键值数据库,广泛应用于缓存、数据持久化等场景。在 Windows 上测试 Redis 的持久化功能,主要是确保数据在系统重启或异常情况后能够被正确地保存和恢复。以下将详细介绍如何在 Windows 环境下...

    解密Redis持久化

    Redis 是一款高性能的键值存储系统,广泛应用于缓存和数据持久化。持久化是Redis的一个重要特性,确保即使在服务器崩溃或系统断电后,数据也能得以恢复。本文将深入解析Redis的持久化机制,主要包括RDB快照和AOF日志...

    Redis持久化以及集群部署

    ### Redis 持久化与集群部署探讨 #### 一、Redis 持久化机制 Redis 提供了两种持久化方式:RDB(Redis Database Backup)和 AOF(Append Only File)。这两种机制各有特点,适用于不同的场景。 ##### 1. RDB...

    从源码解读redis持久化

    【Redis持久化机制详解】 Redis作为一种高性能的内存数据库,其数据存储在内存中,因此面临一个问题:当系统崩溃或服务器意外关机时,内存中的数据可能会丢失。为了解决这个问题,Redis提供了两种主要的持久化机制...

    Redis持久化锦囊在手,再也不会担心数据丢失了(csdn)————程序.pdf

    Redis 持久化是 Redis 为了解决内存数据库在服务器宕机或重启时数据丢失问题而提供的功能。本文主要介绍了 Redis 的两种持久化机制:RDB(Redis Database Backup file)和 AOF(Append Only File),重点讲解了 RDB ...

    Redis windows 测试redis持久化功能.docx

    ### Redis Windows 测试Redis持久化功能 #### 一、Redis持久化概述 Redis 提供了两种持久化方式:RDB(Redis Database Backup)和AOF(Append Only File)。本篇文章将重点讨论 RDB 方式的持久化配置与测试方法。 ...

    Redis持久化 - RDB和AOF

    “Redis持久化 - RDB和AOF” Redis持久化是指将数据库中的数据保存到永久存储设备中,以避免数据丢失。Redis提供了两种持久化方式:RDB(快照方式)和AOF(写日志方式)。 RDB(Redis Database)是一种快照方式的...

    redis常用命令,redis配置文件,redis持久化,redis事务,redis主从复制,jedis的使用

    下面是对 Redis 的常用命令、配置文件、持久化、事务、主从复制、Jedis 使用的详细讲解。 Redis 常用命令 Redis 提供了很多有用的命令来管理和操作数据。下面是一些常用的 Redis 命令: * SET key value:设置...

    Redis持久化、主从与哨兵架构详解开发文档

    Redis 持久化是确保数据在 Redis 服务器重启或发生故障时不会丢失的重要机制。主要包含两种方式:RDB(Redis Database Persistence)快照和 AOF(Append Only File)日志。 RDB 快照是 Redis 默认的持久化方式之一...

    Redis教程-Redis持久化.docx

    ### Redis 持久化详解 #### 一、引言 Redis 作为一款高性能的键值存储系统,广泛应用于各种场景中的数据缓存与管理。虽然 Redis 的主要特性在于其高速的内存操作能力,但为了确保数据的安全性及可靠性,Redis 提供...

Global site tag (gtag.js) - Google Analytics