• 6. redis持久化,认证


    一. RDB 快照持久化 (默认)

    1. rdb机制,在满足redis.conf中配置的持久化策略后, 自动持久化数据, 默认存储在dump.rdb文件中
    2. 策略 :
      save 900 1 : 900秒内,一个key更改就持久化
      save 300 10 : 300 秒内, 10 个key更改就持久化
      save 60 10000:
    3. rdb过程:
      redis调用fork函数, 拷贝当前redis进程的作为子进程, 改子进程把内存中的数据写成文件, 然后替换旧的dump.rdb
    4. 手动触发rdb快照 :
      (1) save : 让当前redis进程进行快照操作, 会阻塞其他请求
      (2) bgsave ; 用fork后的子进程进行快照操作
    5. redis-check-dump : 修复dump.rdb文件
    6. rdb方式的缺点 :
      如果一次rdb后发生数据修改,但还未触发下一次rdb持久化时就宕机, 则会丢失这期间发生改变的数据

    二. AOF日志文件持久化

    1. redis默认不开启AOF持久化, 需要修改appendonly yes开启备份
    2. 如果同时开启了rdb与aof持久化, 则只会触发aof持久化
    3. AOF默认每秒执行一次日志记录, 保存到appendonly.aof文件中, 该文件可以直接查看
    4. AOF的执行策略 :
      (1)appendfsync always 每次都会执行
      (2)appendfsync everysec 默认 每秒执行一次同步操作(推荐,默认)
      (3)appendfsync no不主动进行同步,由操作系统来做,30秒一次
    5. aof日志文件重写
      aof文件有自己的重写策略, 因为aof只是记录了每次的操作命令, 如果不进行重写, 这个文件的大小会随着操作次数的增加而变得非常庞大, 也不利于恢复数据,所以要定期重写该文件
      (1)重写流程 : aof自动生成set命令等插入命令, 来描述当前内存中的数据内容, 这些命令覆盖原来的aof文件
      (2)重写策略 :
      (a) auto-aof-rewrite-percentage 100 : 当目前aof文件大小超过上一次重写时的aof文件大小的百分之多少时会再次进行重写,如果之前没有重写,则以启动时的aof文件大小为依据
      (b)auto-aof-rewrite-min-size 64mb : 文件增加到64m后重写
      (c)手动执行bgrewriteaof进行重写
    [注]:所谓的“重写”其实是一个有歧义的词语, 实际上, AOF 重写并不需要对原有的 AOF 文件进行任何写入和读取, 它针对的是数据库中键的当前值。
    

    三. 动态切换redis持久方式

    1. CONFIG SET appendonly yes : 从RDB切换到AOF
    2. CONFIG SET save ""(可选)
     [注]:如果想把正在运行的redis数据库,从RDB切换到AOF,建议先使用动态切换方式,再修改配置文件,重启数据库。(不能自己修改配置文件,重启数据库,否则数据库中数据就为空了。)
    

    四. config命令

    1. 使用config set可以动态设置参数信息,但在服务器重启之后就失效了。
      config set appendonly yes
      config set save "90 1 30 10 60 100"
    2. 使用config get可以查看所有可以使用config set命令设置的参数
      config get * : 获取所有设置的参数值
    3. config rewrite命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写(Redis 2.8 及以上版本才可以使用),主要是把使用config set动态指定的命令保存到配置文件中。
    [注]:config rewrite命令对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。
    

    五.安全认证

    1. 设置数据库密码 (密码认证)
      (1)修改配置requirepass password
      (2)验证密码auth password
      (3)jedis.auth(String passed) 在链接时进行验证
    2. bind参数(可以让数据库只能在指定IP下访问)(主机认证)
      bind 127.0.0.1
    3. 重命名命令,防止意外的flushall输入
      (1)修改命令的名称 : rename-command flushall cleanall
      (2)禁用命令 : rename-command flushall ""
  • 相关阅读:
    html转义
    mongodb 数据库 基础使用
    xpath基本语法
    HTTP
    JavaScript笔记6-数组新方法
    JavaScript笔记5-事件
    JavaScript笔记3--标识符和保留字
    JavaScript笔记4-数组
    jquery笔记1--选择器
    JavaScript笔记2
  • 原文地址:https://www.cnblogs.com/72808ljup/p/5208574.html
Copyright © 2020-2023  润新知