• Redis持久化


    所谓Redis持久化,就是将内存中Redis数据保存到磁盘中,达到一个备份的效果,以便恢复数据。

    Redis的持久化方式有两种: RDB方式  AOF方式

    RDB方式:

    打开Redis配置文件 vi redis.conf

    save 900 1 (每900秒 发生1次修改 写入磁盘)
    save 300 10 (每300秒 发生10次修改 写入磁盘)
    save 60 1000 (每60秒 发生100次修改 写入磁盘)

    dbfilename dump.rdb (保存数据的文件名)
    dir ./ (保存数据的所在目录)   注意注意注意:这里有大坑!  这个保存数据的所在目录  默认的是./  实际上这个目录并不是相对于redis.conf所在的目录,而是相对于你执行命令时的目录。
    检查该文件有没有 如果没有请先手动创建
    Redis启动时会自动读取该文件 恢复数据 (因此可以写个定时任务定时将dump.rdb备份到别处以时间命名 以便可以进行恢复任何阶段的数据)

    重启Redis : /etc/init.d/redis restart
    (redis设置系统服务请查看 http://www.cnblogs.com/fengyumeng/p/7513699.html)

    原理:子进程备份数据->替换旧的dump.rdb
    优点:速度快 性能强
    缺点:如果在写入磁盘之前服务器突然抽风,容易丢失数据。

    AOF方式:

    打开Redis配置文件 vi redis.conf

    appendonly no (是否开启AOF方式)
    appendfilename "appendonly.aof" (保存数据的文件名)

    appendfsync always (每修改一次同步一次)
    appendfsync everysec (每秒同步一次)
    appendfsync no (不同步)
    选择哪种打开哪种

    原理:不断在appendonly.aof文件中追加数据
    优点:最大程度保证数据安全
    缺点:速度慢

    当 Redis 启动时, 如果 RDB 持久化和 AOF 持久化都被打开了, 那么程序会优先使用 AOF 文件来恢复数据集, 因为 AOF 文件所保存的数据通常是最完整的。

    虽然Redis服务重启后数据可以恢复,但是Linux重启后Redis数据还是丢失干净,解决方式如下:

    编辑sysctl.conf文件
    vi /etc/sysctl.conf

    添加一行
    vm.overcommit_memory = 1

    立即生效
    sysctl -p

  • 相关阅读:
    Java 工程转 C#
    初涉Linux ----------> 打造自己的 Vim IDE
    初涉Linux ----------> Ubuntu15.04的安装与美化
    没学过CSS等前端的我,也想美化一下自己的博客
    作为程序员之 Vim(一)
    win7升win10,初体验
    作为程序员之正则表达式
    数据库系统原理
    Mysql数据库笔记
    我的个人常用快捷键
  • 原文地址:https://www.cnblogs.com/fengyumeng/p/7698100.html
Copyright © 2020-2023  润新知