4.Redis持久化方案

1.1 RDB持久化

RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘

RDB是Redis默认采用的持久化方式。


save 900 1

save 300 10

save 60 10000

1.1.1   持久化条件配置

save 开头的一行就是持久化配置,可以配置多个条件(每行配置一个条件),每个条件之间是“或”的关系。

“save 900 1”表示15分钟(900秒钟)内至少1个键被更改则进行快照。

“save 300 10”表示5分钟(300秒)内至少10个键被更改则进行快照。

1.1.2   配置快照文件目录

配置dir指定rdb快照文件的位置


# Note that you must specify a directory here, not a file name.

dir ./

1.1.3   配置快照文件的名称

设置dbfilename指定rdb快照文件的名称


# The filename where to dump the DB

dbfilename dump.rdb

Redis启动后会读取RDB快照文件,将数据从硬盘载入到内存。根据数据量大小与结构和服务器性能不同,这个时间也不同。通常将记录一千万个字符串类型键、大小为1GB的快照文件载入到内存中需要花费20~30秒钟。

1.1.4   问题总结

通过RDB方式实现持久化,一旦Redis异常退出,就会丢失最后一次快照以后更改的所有数据。这就需要开发者根据具体的应用场合,通过组合设置自动快照条件的方式来将可能发生的数据损失控制在能够接受的范围。

如果数据很重要以至于无法承受任何损失,则可以考虑使用AOF方式进行持久化

1.2 AOF持久化

默认情况下Redis没有开启AOF(append only file)方式的持久化,【操作一次就写一次数据】

  • 可以通过修改redis.conf配置文件中的appendonly参数开启

appendonly yes

开启AOF持久化后每执行一条会更改Redis中的数据的命令,Redis就会将该命令写入硬

盘中的AOF文件。

  • AOF文件的保存位置和RDB文件的位置相同,都是通过dir参数设置的。

dir ./

  • 默认的文件名是appendonly.aof,可以通过appendfilename参数修改:

appendfilename appendonly.aof

  • 重启服务,再添加数据,然后会有一个aof文件,然后分析appendonly.aof文件内容

[[email protected] bin]# ./redis-cli shutdown

[[email protected] bin]# ./redis-server redis.conf

[[email protected] bin]# ./redis-cli

127.0.0.1:6379> set ip 192.168.1.1

OK

原文地址:https://www.cnblogs.com/royal6/p/12123529.html

时间: 2024-08-14 09:51:13

4.Redis持久化方案的相关文章

Redis持久化方案

1    Redis持久化方案 Redis是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案: l  RDB方式(默认) l  AOF方式 1.1   RDB方式 1.1.1介绍 l  RDB是Redis默认采用的持久化方式. l  RDB方式是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘. l  Redis会在指定的情况下触发快照 1.     符合自定义配置的快照规则 2.     执行save或者bgsave命

Redis持久化方案详解

Redis的数据回写机制 Redis的数据回写机制分同步和异步两种, 同步回写即SAVE命令,主进程直接向磁盘回写数据.在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的. 异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭.由于这样做不需要主进程阻塞,系统不会假死,一般默认会采用这个方法. 个人感觉方法2采用fork主进程的方式很拙劣,但似乎是唯一的方法.内存中的热数据随时可能修改,要在磁盘上保存某个时间的内存镜像必须要冻结.冻结

Redis学习-4-2 Redis持久化

1.持久化: 数据保存到一个不会丢失的地方就是持久化,可认为是永久存储的: 2.Redis持久化: Redis的数据存储在内存中,是不安全的,所以Redis有自己的持久化方案,将内存数据定期保存到磁盘文件中,当Redis崩溃了或者计算机意外关机了,重启Redis服务的时候,将磁盘中文件恢复到内存中来: 3.Redis持久化方案: 1.RDB: Redis Data Base,就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存. RDB保存了在某个时间点的数据集

redis的持久化方案

Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化. Redis支持两种方式的持久化,一种是RDB方式,一种是AOF方式.可以单独使用其中一种或将二者结合使用. RDB RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的数据进行快照并持久化到硬盘. RDB是Redis默认采用的持久化方式,在redis.conf配置文件中默认有此下配置: sa

玩转redis持久化,阿里架构师给你来一篇方案介绍

一.基本介绍 本次演示使用的redis版本是3.2.100,操作系统是win10. redis支持两种持久化方案,RDB和AOF,前者是默认打开的,后者需要手动开启.我们通过配置文件可以验证这一点, RDB默认开启 save 900 1 save 300 10 save 60 10000 这三条配置是RDS触发快照的条件,它们的意思分别是: 900秒内如果有一条写入,则产生快照 300秒内如果有1000次写入,则产生快照 60秒内如果有10000次写入,则产生快照 当然,触发rdb快照的条件不止

redis的持久化方案RDB和AOF

RDB:快照形式,定期把内存中当前时刻的数据保存到磁盘.Redis默认支持的持久化方案.速度快但是服务器断电的时候会丢失部分数据 AOF形式:append only file.把所有对redis数据库操作的命令,增删改操作的命令.保存到文件中.数据库恢复时把所有的命令执行一遍即可.两种持久化方案同时开启使用AOF文件来恢复数据库.能保证数据的完整性,但是速度慢 两者如何选择? 如果你没有数据持久化的需求,可以关闭RDB和AOF方式,这样的话,redis将变成一个纯内存数据库,就像memcache

redis持久化策略梳理及主从环境下的策略调整记录

redis是一个内存数据库,它的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个Append Only File(AOF)里面(这称为"完全持久化模式").redis提供了两种不同级别的持久化方式:一种是默认的RDB(filesnapshotting快照)持久化,一种是AOF持久化,这两种持久化方式都可以将内存中的数据库状态保存到磁盘上,但是原理非常不同,区别很明显! 1.RDB持久化可以在

redis演练(5) redis持久化

何谓持久化,就是媳妇让你,持久一些. 说白了持久化:就是将内存中的数据保存到磁盘上的过程(数据库也算磁盘的特殊表现),以保证宕机或断电后,可以继续访问.java中常见的持久化框架,如Hibernate,ibatis,jdbc都是持久化实现方式的一种,当然普通文件保存功能也算. 拿memcached来说,memcached保存的信息,没有进行持久化,所以只能存活一个进程生命期,下次重新启动,数据全部丢失.这算memcached的一个缺点吧.redis提供了持久化支持,而且提供了2种持久化方案. <

8. Redis 持久化对生产环境的灾难恢复的意义

1.故障发生的时候会怎么样2.如何应对故障的发生 很多同学,自己也看过一些redis的资料和书籍,当然可能也看过一些redis视频课程 所有的资料,其实都会讲解redis持久化,但是有个问题,我到目前为止,没有看到有人很仔细的去讲解,redis的持久化意义 redis的持久化,RDB,AOF,区别,各自的特点是什么,适合什么场景 redis的企业级的持久化方案是什么,是用来跟哪些企业级的场景结合起来使用的??? redis持久化的意义,在于故障恢复 比如你部署了一个redis,作为cache缓存