第五章: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服务:

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

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

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

(0)
上一篇 2022年4月23日 下午6:40
下一篇 2022年4月23日 下午7:00


相关推荐

  • 前端开发博客_程序员的个人博客

    前端开发博客_程序员的个人博客国内技术团队博客,大多集中在前端,下面是这些前端技术团队的博客。还有少量非前端(或者不只是前端)的技术博客,单独整理到另一个列表中去了(点击前往)【腾讯】腾讯前端Web团队IMWEBhttp://imweb.ioIMWEB团队创立之初是负责腾讯最核心的基础业务:QQ注册、QQ登录(ptlogin)、QQ资料和关系链拓展等基础服务。后转型进行应用开发,分别投入Q+、QQ圈

    2022年8月13日
    3
  • linux下gdb调试方法与技巧整理「建议收藏」

    linux下gdb调试方法与技巧整理「建议收藏」目录一、gdb简介二、gdb使用流程1、启动gdb2、查看源码3、运行程序4、设置断点5、单步执行6、查看变量7、退出gdb三、gdb基本使用命令1、运行命令2、设置断点3、查看源码4、打印表达式5、查看运行信息6、分割窗口7、cgdb强大工具四、总结一、gdb简介GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下…

    2022年5月25日
    74
  • nema23_关于NEMA SM 23的说明

    nema23_关于NEMA SM 23的说明Unfortunately,NEMASM23isambiguousaboutthepointofresolutionofthecombinedforcesandmoments.Theresolutionpointshavebeeninterpretedtobethefollowingtwopoints:NEMASM23没有给出设备整体校核时所有作…

    2025年8月13日
    3
  • Claude Code × 智谱 BigModel 实战集成指南

    Claude Code × 智谱 BigModel 实战集成指南

    2026年3月12日
    4
  • Java truelicense 实现License授权许可和验证

    Java truelicense 实现License授权许可和验证文章目录前言一 场景二 truelicense 是什么三 原理四 使用步骤五 实现代码六 执行代码期间遇到的问题参考资料前言一 场景二 truelicense 是什么三 原理四 使用步骤在接触代码前 我们先来大概熟悉下密钥生成的流程吧 1 首先要用 KeyTool 工具来生成私匙库 alias 别名 validity3650 表示 10 年有效 keytool genkey aliasprivate keystorepriv store validity3650 这

    2026年3月17日
    2
  • 解决redis雪崩_redis 雪崩

    解决redis雪崩_redis 雪崩缓存雪崩指的是缓存失效了,导致大量的请求直接访问数据库,数据库压力就大了,很容易发生宕机的情况,然后和数据库相关的系统都受到了影响,这就是雪崩。缓存失效->数据库宕机->所有系统出现问题,连锁反应。缓存失效原因:1、redis集群大面积故障2、缓存过期解决方案:1、redis策略,redis高可用设计。2、redis策略,在给缓存加过期时间时,尽量错峰,避免同一时间所有缓存失效。3、访问数据库策略,访问数据库时加锁,单线程访问,可能会导致…

    2025年11月14日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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