zoukankan      html  css  js  c++  java
  • 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 ""
  • 相关阅读:
    94. Binary Tree Inorder Traversal
    101. Symmetric Tree
    38. Count and Say
    28. Implement strStr()
    实训团队心得(1)
    探索性测试入门
    LC.278. First Bad Version
    Search in Unknown Sized Sorted Array
    LC.88. Merge Sorted Array
    LC.283.Move Zeroes
  • 原文地址:https://www.cnblogs.com/72808ljup/p/5208574.html
Copyright © 2011-2022 走看看