redis RDB持久化[手工持久化]:

RDB持久化在指定的时间间隔内生成数据集的时间点快照[point-in-time snapshot]

优点: 速度快,适合于备份

缺点: 会有数据丢失

#正常没有做持久化时
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> set name timo
OK
10.0.0.63:6379> exit
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> get name
"timo"
没有shutdown时数据还在,现在执行shutdown
然后重新启动redis
10.0.0.63:6379> shutdown
not connected> exit
[root@k8s-master1 6379]# redis-server /nosql/redis/6379/redis.conf 登录进去后,查询设置的 timo 键值:
10.0.0.63:6379> get name
(nil)
此时为空。 #手工持久化[RDB持久化]:
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> set name01 timo
OK
10.0.0.63:6379> save
OK
10.0.0.63:6379> shutdown #关闭redis
not connected> exit 启动后查询:
[root@k8s-master1 6379]# redis-server /nosql/redis/6379/redis.conf
[root@k8s-master1 6379]# redis-cli -h 10.0.0.63 -a 123
10.0.0.63:6379> get name01
"timo"
此时就是做了手工持久化,使得数据保存了,在重启后依然存在。
我们知道没有持久化的数据都在内存中,一旦重启内存就被释放了,此时只有手工持久化才行。 save就是手工持久化。

redis RDB持久化条件配置【适合用于备份】redis rdb持久化策略

手工持久化可以设置哪些数据会被持久化,设置条件后即使我们不手工敲save 系统也会自动帮我们做持久化操作。

rdb持久化也叫快照持久化,他会持久化当前内存状态。

优点:数据持久化快。 非常适合用于备份。

RDB持久化快照条件配置
在我们不用敲save主动进行持久化的时候,我们还可以使用一些条件进行自动持久化,比如设置 100秒保存一次。
redis.conf 添加条件如下: save 900 1
save 300 10
save 60 10000 配置分别表示:
900秒(15分钟)内有1个更改
300秒(5分钟)内有10个更改
60秒内有10000个更改

redis AOF持久化

记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集

AOF文件中的命令全部以redis协议格式来保存,新命令追加到文件末尾。

优点: 可以最大程度保证数据不会丢失

缺点:日志记录的量级会比较大

RDB持久化只会保存最后一次的操作,而AOF会保存所有的操作。它的量级会比RDB持久化日志更大,类似于mysql的binglog

redis AOF持久化配置

重要配置:
appendonly yes #是否打开持久化功能
appendfsync always #是否开启持久化条件 always[每次修改都持久化] everysec[每秒持久化一次] 一般设置everysec 注意: redis集群中,这个功能必须要开启。
配置文件:
daemonize yes
port 6379
logfile /nosql/redis/6379/redis.log
dir /nosql/redis/6379
dbfilename dump.rdb
#protected-mode no
bind 10.0.0.63
requirepass 123
save 900 1
save 300 10
save 60 10000 appendonly yes
appendfsync everysec

面试技巧:

redis的持久化方式有哪些,有什么区别?
redis有两种持久化方式,分别是 RDB持久化 AOF持久化
RDB持久化是以操作次数作为条件保存数据的他是基于快照进行持久化的,速度更快,主从复制也依赖该功能[速度快]
AOF持久化是指定每次修改追加方式进行数据持久化操作。可以最大程度保证redis数据安全 [更安全]

redis数据类型:

string: 字符类型
Hash: 字典类型
List: 列表
set: 集合
Sorted set: 有序集合

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

  1. Redis进阶:数据持久化,安全,在PHP中使用

    一.redis数据持久化 由于redis是一个内存数据库,如果系统遇到致命问题需要关机或重启,内存中的数据就会丢失,这是生产环境所不能允许的.所以redis提供了数据持久化的能力. redis提供了两 ...

  2. Redis 中的数据持久化策略(RDB)

    Redis 是一个内存数据库,所有的数据都直接保存在内存中,那么,一旦 Redis 进程异常退出,或服务器本身异常宕机,我们存储在 Redis 中的数据就凭空消失,再也找不到了. Redis 作为一个 ...

  3. Redis 中的数据持久化策略(AOF)

    上一篇文章,我们讲的是 Redis 的一种基于内存快照的持久化存储策略 RDB,本质上他就是让 redis fork 出一个子进程遍历我们所有数据库中的字典,进行磁盘文件的写入. 但其实这种方式是有缺 ...

  4. redis rdb aof比较

    Redis中数据存储模式有2种:cache-only,persistence; cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一 ...

  5. [Redis] RDB & AOF

    http://my.oschina.net/davehe/blog/174662 rdb - 存在dump.rdb 的二进制文件中 dump 整个db, 数据多的时候,不合适频繁保存,保存的时间间隔应 ...

  6. 12 redis之aof日志持久化

    Aof 的配置 appendonly no # 是否打开 aof日志功能 appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢 appendfsync everys ...

  7. Redis数据持久化机制AOF原理分析一---转

    http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...

  8. 详解Redis RDB持久化、AOF持久化

    1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘). 1.2 red ...

  9. 《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化

    欢迎关注文章这一系列,一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇> <实战演练,拒绝996篇> 如果此文对你有帮助.喜欢的话,那就点个赞呗,点个关注 ...

  10. Redis持久化rdb&aof

    Redis持久化rdb&aof 前言 持久化:即把数据存储于断电后不会丢失的设备中,通常是硬盘 常见的持久化方式: 主从:通过从服务器保持持久化,如mongoDB的replication se ...

随机推荐

  1. mysql 必知必会整理—存储过程[十三]

    前言 简单整理一下存储过程. 正文 需要MySQL 5 MySQL 5添加了对存储过程的支持,因此,本章内容适用于MySQL 5及以后的版本. 迄今为止,使用的大多数SQL语句都是针对一个或多个表的单 ...

  2. jenkins 持续集成和交付——pipeline(五)

    前言 整理一下pipeline. 正文 介绍 什么是pipeline呢? 根据前面的所得,我们知道,以前都是模板形式,但是如果有些复杂的项目,需要用更加自定义的写法,那么就有了pipeline,也就是 ...

  3. CC1TransformedMap链学习

    跟着看了白日梦组长的视频,记录一下调试学习过程 CC1链学习 TransformedMap链 ObjectInputStream.readObject() AnnotationInvocationHa ...

  4. APISIX 简单的自定义插件开发步骤

    本文基于 APISIX 3.2 版本进行插件开发并运行通过. APISIX 目前开发插件比较简单,只需要编写 Lua 源代码并放到默认的插件目录下,然后通过配置文件开启插件即可,我们如果使用 Dock ...

  5. 【hibernate】使用HQL对页面进行时间校验操作(预约)

    [hibernate]使用HQL对页面进行时间校验操作(预约) 预约系统中的时间校验 正好接了一个预约的需求,还需要用java 7和hibernate 1.时间冲突,时间段不能重复,在保存前对数据库进 ...

  6. 剑指offer66(Java)-构建乘积数组(中等)

    题目: 给定一个数组 A[0,1,-,n-1],请构建一个数组 B[0,1,-,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×-×A[i ...

  7. 系统架构面临的三大挑战,看 Kubernetes 监控如何解决?

    ​简介: 随着 Kubernetes 的不断实践落地,我们经常会遇到负载均衡.集群调度.水平扩展等问题.归根到底,这些问题背后都暴露出流量分布不均的问题.那么,我们该如何发现资源使用,解决流量分布不均 ...

  8. Oracle "脑残" CBO 优化案例

    今天晚上下班回来才有空看群,群友发了一条很简单的慢SQL问怎么优化. 非常简单,我自己模拟的数据. 表结构: -- auto-generated definition CREATE TABLE HHH ...

  9. ES6中Promise方法详解

    概要 Promise是个保存异步结果的容器(对象). Promise的状态有:pending(进行中),fulfilled(已成功),rejected(已失败),对应其异步操作的状态. 状态转换: p ...

  10. HAL库移植RT-Thread Nano

    一.移植RT-Thread Nano准备 keil软件 CubeMx软件 STM32 CubeMx使用教程:https://www.cnblogs.com/jzcn/p/16313803.html S ...