zoukankan      html  css  js  c++  java
  • reids持久化系列

    感觉知识还是靠自己手写出来记得更深,更久。

    redis持久化可以通过 /usr/local/etc/redis.conf,配置文件配置。

    Redis的持久化有 RDB, aof 两种。
     
    RDB 默认的保存文件dump.rdb , 了解其过程
    (1) redis 使用fork函数,复制一份当前进程(父进程)的副本(子进程);
    (2)父进程继续接收并处理客户端发来的命令,而子进程开始将内存的数据写入硬盘中的临时文件中。
    (3)当子进程写入完所有数据会用临时文件替换久的rdb文件,至此快照操作完成。
     
    开启方式配置
    save 900 1 //每900秒至少有一个键改变则进行一次快照
    save 300 10 //每300秒至少有十个键改变则进行一次快照
    save 60 10000  //每60秒至少有10000个键改变则进行一个快照
     
    RDB 是通过压缩的二进制格式,所占用空间小于内存中的数据,便于传输。
    Save ,bgsave 命令可以手动执行持久化查找, 但是save 是阻塞的, bgsave 是非 阻塞的, 一般不建议用save。
     
    快照保存文件 dbfilename dump.db
     
    Aof (append only file )
    开启方式 appendonly yes.如果要关闭的话appendonly no;
    了解其原理
    每执行一条会改变redis 数据命令,redis 就会将该命令写入到硬盘AOF文件中,保存AOF文件名字 appendfilename appendonly.aof.
    然而有的命令会出现重复,也就是说之前的一些命令会收后期命令的改变,前期的命令是无效的,这个时候redis 会自动优化aof文件,
    可以通过auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb 配置, 来看是否优化oaf. 
    auto-aof-rewrite-percentage 参数的意思:当目前的oaf文件大小超过上一次oaf文件大小的百分之多少时重写。
    auto-aof-rewrite-min-size 参数的意思是:允许重新的最小的oaf文件大小。
    Bgrewriteaof  可以手动执行oaf重写操作。
     
    自动同步方式配置
    # appendfsync always //每次写入都同步,这个最慢,性能不好
    appendfsync everysec //每秒同步一次, 所以一般用这个
    # appendfsync no //不主动同步,而是由操作系统来做(即每30s 同步一次)这个不安全,数据丢失多。 
     
  • 相关阅读:
    DeepL 人工智能翻译降临 deepl.com
    Node.js ESM(ECMAScript Modules)
    解决Ubuntu 20.04 LTS无法输入中文的问题
    实现pdnsd
    颜色
    Ubuntu 20.04 LTS
    JSX 空的根元素
    如何理解TypeScript接口​​中的语法[key: string]以及[key: number]
    React-Router-DOM
    video转canvas, 并截图
  • 原文地址:https://www.cnblogs.com/wxdr/p/13451736.html
Copyright © 2011-2022 走看看