zoukankan      html  css  js  c++  java
  • Redis持久化之RDB持久化

    Redis持久化

    Redis虽然是以一个内存数据库闻名的,但为了提供可靠、安全的功能保障,也是需要有持久化能力的,
    Redis有两种持久化方式:RDB(redis database)持久化和AOF持久化(append only file),其中RDB是Redis默认的持久化方式。

    RDB持久化

    RDB持久化可以通过调用save或者bgsave命令触发,其中save命令是由redis服务进程执行的,因此是阻塞式的命令,不建议频繁使用;
    bgsave则是由服务进程fork一个进程来调用,因此不影响程序执行其他命令(save、bgsave和bgwriteaof除外)。

    Redis默认的持久化机制是:

    save 900 1
    save 300 10
    save 60 10000
    

    表示的意思是:
    900秒内,有1次更新则触发bgsave
    300秒内,有10次更新则触发bgsave
    900秒内,有10000次更新,则触发bgsave

    RDB持久化文件

    RDB持久化会产生一个dump.rdb文件,我使用的redis是通过docker创建的,默认在容器内部目录/data下面

    因为dump.rdb文件是压缩过的,所以直接用cat或者vi是查看不到内容的,可以使用一些工具来查看其内容,我用的是python组件rdbtools
    首先安装一下:

    pip3 install rdbtools
    pip3 install python-lzf
    

    然后在dump.rdb的目录使用rdb命令解析并将结果重定向到dump.json中

    rdb --command json dump.rdb > dump.json
    

    查看dump.json

    当然,这里并不是dump.rdb中全部的文件内容,这里只有数据库的内容,实际上dump.rdb文件还定义了文件头,文件版本,结束符和校验和等等。

    参考

    书籍

    黄健宏前辈的《Redis设计与实现》

    网友链接

    https://blog.csdn.net/floatdreamed/article/details/103720986

  • 相关阅读:
    blktrace 梁斌说
    线索二叉树
    Boost库中文文档
    STL中的equal函数
    HDU3661_assignments_活动分配_贪心
    转:数据结构小结
    HDU2273_车通过路口
    C++之lexicographical_compare
    HDU1671_Phone List
    HDU2277_变色球
  • 原文地址:https://www.cnblogs.com/alinainai/p/14039194.html
Copyright © 2011-2022 走看看