redis-持久化

持久化 : redis会将数据异步的写入到磁盘, 使用时候在从磁盘写入的内存

实现持久化的方式有两种:1 是以快照的方式保存到磁盘入rdb , 2 是以写日志的方式 入AOF

RDB:

  1 save 命令 同步进程 当输入一个save 命令会生成一个rdb文件,因为是同步的所以会造成redis的一个阻塞

  2 bgsave :他会通过条用redis的fork() 函数生成一个子进程,让子进程取创建rdb文件,异步,redis主进程不会阻塞

  3 通过配置,进行一个自动的rdb生成 , 

    save 900 1  三个条件满足一个即可 , 生成新的rdb文件会替换旧的
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error yes  在bgsave错误时候停止写入   
    rdbcompression yes   支持压缩

  缺点: 耗时耗性能 ,在写入硬盘消耗硬盘IO性能 , 会造成丢数据

 AOF:

  以记录日志的形式,执行一条命令会写入到AOF 文件中

  AOF 的三种策略:

    always : 每条命令都会写到AOF中 , 不会丢数据,但是消耗大量的Io性能

    everysec : 没秒刷新一次写入到AOF中

    no : 根据操作系统,有操作系统来决定什么时候刷入到AOF中

  AOF重写: 是把重复的,过期的,无用的命令进行一个优化,合并

      两种实现方式:

    bgrewriteaof: 输入命令开启AOF重写

    AOF重写配置:

                            

                            

 AOF 配置:

  appendonly  yes :  使用aof 功能将这个改为yes 

  appendfilename "appendonly.aof”    文件名

  appendfsync everysec  : 同步的策略

  no-appendfsync-on-rewrite  yes  : 再左aof重写时候, 是否进程aof的正常读写操作

  auto-aof-rewrite-percentage 100
  auto-aof-rewrite-min-size 64mb

 

posted @ 2024-03-24 22:06  huxl1  阅读(1)  评论(0编辑  收藏  举报