第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]第五章:redis持久化,包括rdb和aof两种方式

大家好,又见面了,我是你们的朋友全栈君。

rdb持久化方式:是在指定的时间写入硬盘

aof方式:是以日志,记录每一操作,

两个方式可以单独使用或结合使用

rdb

rdb方式是默认支持的。

特点:只有一个文件,根据配置文件的配置时间间隔,每个一段时间将数据统一读入到一个文件中,方便压缩转移。但是如果宕机就会丢失这段时间内的数据。

我们查看redis.conf配置文件:

有下面一段:

#   like in the following example:
#
#   save ""

save 900 1
save 300 10
save 60 10000

# By default Redis will stop accepting writes if RDB snapshots are enabled

save 900 1 是指,每900秒内有一个key发生变化就持久化一次

save 300 10:每300秒内有10个key发生变化就持久化一次

save 60 10000:每60秒内有10000个key发生变化就持久化一次

这是分为三种持久化策略,尽可能的包装数据安全又能减少保持文件的数量。

redis.conf往下有如下:

# The filename where to dump the DB
dbfilename dump.rdb

# The working directory.

则是默认文件的名称;

在往下:

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

这是rdb在配置文件的同级目录下。我的在home目录下:

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

这里我们测试下,在客户端我的key是有前面我们学习创建的:

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

下面我先退出客户端和服务,然后dump.rdb文件删掉,再重启服务:

127.0.0.1:6379> shutdow
(error) ERR unknown command 'shutdow'
127.0.0.1:6379> shutdown
not connected> exit
xiaoye@ubuntu3:~$ ./redis/src/redis-server 
xiaoye@ubuntu3:~$ ./redis/src/redis-cli 
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

发现没有值了。这里我们再添加几条数据:

127.0.0.1:6379> set n1 aa
OK
127.0.0.1:6379> set n2 bb
OK
127.0.0.1:6379> keys *
1) "n2"
2) "n1"
127.0.0.1:6379> shutdown save
not connected> exit

然后我们会看到redis目录下会自动生成一条dump.rdb文件:

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

然后我们再启动redis服务的时候,会执行rdb check验证,然后加载redis目录下rdb文件;加载数据:

127.0.0.1:6379> keys *
1) "n1"
2) "n2"
127.0.0.1:6379> 

我们刚加的是有的。

如果把rdb剪切到其他目录,也就是不是redis.conf文件配置的默认目录下,看看能不能用。这样肯定是不行的。这里就不演示了。如果在剪切回来发现又数据了。

下面测试aof方式

AOF方式:以日志的方式一条一条数据的记录下来,每生成一条数据就记录下来。

到redis.conf文件下看看配置:

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

这里appendonly no 表示默认aof方式为关闭,我们这里改为开启

下面一行是默认的文件名。

我们继续往下看看redis.conf文件看看aof的保存策略:

第五章:redis持久化,包括rdb和aof两种方式[通俗易懂]

always是只要发生修改就立即同步,推荐使用,安全性高。

everysec是每秒同步一次。

这里我们改为只要发生修改就同步一次:

然后我们重启redis服务:

下面小编出了点问题,没有实验成功,暂且放这里

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106131.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JAVA-FileInputStream之read方法「建议收藏」

    JAVA-FileInputStream之read方法「建议收藏」关于FileInputStream    它用于读取本地文件中的字节数据,继承自InputStream类,由于所有的文件都是以字节为向导,因此它适用于操作于任何形式的文件。     关于其最重要的两个方法Read()和Read(byteb)怎么使用呢?首先我们来查看API文档:  read()API文档:publicintread()th

  • 线性代数行列式方程求解(正交矩阵的行列式)

    线性代数行列式求值算的可真是让人CPU疼,但计算机是不累的,所以用一个c++程序帮助你验证求解行列式的值吧。本文介绍了三种算法,虽然还没有完成–.–

  • 在毕设中学习02——numpy多维数组的切片,形态变化,维度交换

    在毕设中学习02——numpy多维数组的切片,形态变化,维度交换2022.5.21文章目录关于matplotlib.pyplotcv2工具python课本学习构建三维数组,并按照指定维度输出生成一组随机数,摆放为指定矩阵形式Python中range(start,stop,步长)生成指定范围,指定步长的一组数多维数组切片——过滤信息多维矩阵的维度顺序变换多维矩阵的切片多维矩阵的形态变化关于matplotlib.pyplotcv2工具两篇博客的学习文献学习python课本学习构建三维数组,并按照指定维度输出import numpy as np#a=np.

  • JAVA – 虚函数、抽象函数、抽象类、接口

    JAVA – 虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。C++中普通成员函数加上virtual关键字就成为虚函数Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了。 2. Java抽象函数(纯虚函…

  • vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object

    vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object错误截图错误分析这个错误的意思是说:无效的命名数据:“数据”类型检查失败。期望数组,得到对象,那么我们这个时候很明白了,是类型不对,但是是哪一行的呢?打开错误信息下面的详情,这个时候找到后缀是自己页面的.vue文件,看看是哪一行,就知道问题在哪了!下面的是我的:warn @ vue.esm.js?efeb:610assertProp @ vue.esm.js?efeb:1691vali…

  • 惠普电脑如何设置u盘启动_惠普笔记本电脑怎么用u盘重装系统

    惠普电脑如何设置u盘启动_惠普笔记本电脑怎么用u盘重装系统惠普笔记本现在算是比较普遍,很多用户都会想给自己的惠普笔记本重装系统,那么惠普怎么重装系统呢?下面介绍一下惠普笔记本u盘系统安装步骤。惠普u盘启动系统安装步骤阅读1、将U盘插在USB接口,开机并不断按下启动U盘快捷键。2、在进入系统启动菜单中选择有USB字样的选项并回车。3、系统启动后会进入PE界面,老机型选择Win2003PE,选择完后回车进入。4、等待进入系统后,无需操作,云骑士会自动打开进行…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号