关于redis:Redis-RDB持久化

0次阅读

共计 1048 个字符,预计需要花费 3 分钟才能阅读完成。

1、RDB 长久化,什么叫 长久化?
1、1: 将数据库中的数据 / 状态保留到磁盘的过程。1、2: 长处:避免数据失落,fork 子过程解决不影响主过程(bgsave),适宜大规模的数据恢复
  
1、3: 毛病:最初一次长久化后的数据可能失落,Fork 的时候,内存中的数据被克隆了一份,大抵 2 倍的膨胀性须要思考

2、长久化过程
2、1: 形式:save(rdbSave())、bgsave(fork() + rdbSave())2、2: rdb 文件的载入是主动的(rdbLoad),没有手动命令

2、3: 能够设置多个 bgSave 条件,满足其一即主动执行 bgSave。碰撞时则进入排队?回绝?2、4: SAVE 会阻塞 redis 服务器

2、5:(存)数据库状态 ->rdb 文件。(取)服务器启动 -> 执行载入程序 -> 优先载入 aof 文件 -> 没有 aof 文件载入 rdb 文件
3、dirty 计数:记录写入、删除、更新等操作的次数。
3、1:lastsave 记录上次执行 SAVE/BGSAVE 的 UNIX 工夫。3、2:dirty 计数在 SAVE/BGSAVE 之后重置

4、serverCron:
4、1:  100ms 执行一次。4、2:  查看 savepramas,满足一条即执行 BGSAVE(应用 dirty 计数器判断)4、3:  保留为 2 进制文件
5、database:
5、1: rdb 文件 =  redis 字符(标记是 rdb 文件)+ db_version(版本号) + 非空数据库 + eof(是否载入标识)+ check_sum (查看统计)
5、2: 非空数据库 = select_db(常量,接下来要读入的数据库号码) + db_number (数据库号码) + key_value_pairs(键值对)
5、3: 键值对 = type(值类型)+ key(键对象)+ value(值对象)5、4: 带有过期工夫的键值对 = type(值类型)+ key(键对象)+ value(值对象)+ expiretime_ms (标识位) + ms(8 字节长的 UNIX 工夫     戳)
6、value 类型:
  STRING、REDIS_RDB_TYPE_LIST、REDIS_RDB_TYPE_SET、REDIS_RDB_TYPE_HASH、REDIS_RDB_TYPE_ZSET、REDIS_RDB_TYPE_INSERT(整数汇合对象)、REDIS_RDB_TYPE_ZIPLIST(压缩列表对象)
7、RDB 文件剖析:
7、1: 能够应用 od 命名剖析 rdb 文件,如:od -c dump.rdb
7、2: 不蕴含任何键值对的 rdb 文件。(与 5.1 中的比照,非空数据库?)
正文完
 0