当前位置:   article > 正文

Redis服务器配置-RDB持久化_redis的服务器地址

redis的服务器地址
概述
  • RDB持久化功能可以将服务器包含的所有数据库数据以二进制文件的形式保存到硬盘里面
    在这里插入图片描述
  • 通过在服务器启动时载入 RDB 文件,服务器可以根据 RDB 文件的内容,还原服务器原有的数据库数据
    在这里插入图片描述
    缺点:
     将所有数据库的数据都保存起来,比较耗费资源和时间,所以需要服务器隔一段时间才创建一个新的RDB文件;如果在等待下一次RDB文件创建的过程中,服务器意外停机,用户将丢失最后一次创建RDB文件之后的数据
创建RDB文件

常见方式:

  • 服务器执行客户端发送的SAVE命令
  • 服务器执行客户端发送的BGSAVE 命令
  • 使用save配置选项设置的自动保存条件被满足,服务器自动执行BGSAVE

命令

  • SAVE命令
    通过客户端向服务器端发送SAVE命令,服务器会创建一个新的RDB文件
    在这里插入图片描述
    在执行SAVE命令的过程中,Redis服务器会被阻塞,无法处理客户发送的命令请求,只有在SAVE命令执行完成后,服务器才会重新开始处理客户端发送的命令请求
    如果RDB文件已经存在,服务器会自动使用新的REB文件去代替旧的RDB文件

    127.0.0.1:6379> save
    OK
    
    • 1
    • 2
  • BGSAVE 命令
    执行BGSAVE命令也会创建一个新的RDB文件,和SAVE的命令区别:BGSAVE不会造成Redis服务器阻塞,在执行BGSAVE命令过程中,Redis服务器仍然可以正常护理其他客户端发送的命令请求
    一个异步命令,发送命令的客户端会立即的到回复

    127.0.0.1:6379> bgsave
    Background saving started
    
    • 1
    • 2

    不会阻塞原因:
     1. 当 Redis 服务器接收到 BGSAVE 命令的时候,它不会自己来创建 RDB 文件,而是通过 fork() 来生成一个子进程,然后由子进程负责创建 RDB 文件,而自己则继续处理客户端的命令请求;
     2. 当子进程创建好 RDB 文件并退出时,它会向父进程(也即是负责处理命令请求的 Redis 服务器)发送一个信号,告知RDB 文件已经创建完毕;
     3. 最后 Redis 服务器(父进程)接收子进程创建的 RDB 文件,BGSAVE 执行完毕
    在这里插入图片描述
    在这里插入图片描述

  • SAVE和BGSAVE区别

命令SAVEBGSAVE
类型同步异步
是否服务器阻塞
复杂度O(N)O(N)
优点不需要创建子进程,不会消耗额外的内存,可以集中资源来创建RDB 文件,所以 SAVE 创建RDB 文件的速度会比 BGSAVE快Redis 服务器可以在创建 RDB 文件的过程中,仍然正常地处理客户端的命令请求
缺点执行期间会阻塞服务器需要创建子进程,会耗费额外的内存
  • 自动创建RDB文件
    通过save配置选项,格式为:
    save <seconds> <changes>
    
    • 1
    如果距离上一次创建 RDB 文件已经过去了 seconds 秒,并且服务器的所有数据库总共已经发生了不少于 changes 次修改(包括添加、删除和更新),那么执行 BGSAVE
    样例:
    save 900 1
    save 300 10
    save 60 10000
    
    • 1
    • 2
    • 3
    当其中一个条件被满足时,服务器就会执行BGSAVE
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/939480
推荐阅读
相关标签
  

闽ICP备14008679号