zoukankan      html  css  js  c++  java
  • 五. Redis持久化

    Redis是一个支持可持久化的内存数据库,也就是说Redis可以将数据保存到硬盘当中。

    目前Redis支持两种持久化方式:

    1. snapshotting 快照方式(默认方式)。

    2. append-only  file (缩写AOF)的方式。

    区别:快照方式是将数据存到文件里面,AOF是将 INSERT,UPDATE,DELETE操作存到文件里面。

    快照持久化

    快照持久化是redis默认的持久化方式。这种方式是将内存中数据以快照的方式写入二进制文件中,默认的文件名为dump.rdb。redis提供了快照持久化的设置方式。

    打开 redis.conf 文件:

    save 900 1    表示900秒内如果超过1个key被修改,则发起快照保存

    save 300 10  表示300秒内如果超过10个key被修改,则发起快照保存

    save 60 10000   表示60秒内如果超过10000 个key被修改,则发起快照保存

    弊端: 快照方式是在一定间隔时间做一次,所以如果Redis意外挂掉的话,就会丢失最后一次快照后的所有修改。

    AOF持久化

    AOF比快照方式有更好的持久化性,是由于在使用AOF时,redis会将每一个收到写命令都通过write函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令来重建整个数据库内容。

    当然由于os会在内核中缓存write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化仍然还是可能会丢失部分修改。

    我们可以通过配置文件告诉redis我们想要通过fsync函数强制os写入到硬盘的时机。

    步骤:

    1. 修改 redis.conf 文件中 appendonly 项,设置为 appendonly no

    2. 配置 appendfsync 项(三选一)

      appendfsync always  (收到命令就立即写入磁盘,最慢,但是保证最完全的持久化)
      appendfsync everysec  (每秒钟写入磁盘一次,在性能和持久化方面做了最好的折中)
      appendfsync no      (完全依赖os,性能最好,持久化方面没保证)

  • 相关阅读:
    ajax跨域
    抽奖概率计算
    应用版本
    empty
    java线程池原理
    java队列
    jquery选择器项目实例分析
    jquery操作dom
    40款非常棒的 jQuery 插件和制作教程(系列一)
    vijosP1046 观光旅游(最小环)
  • 原文地址:https://www.cnblogs.com/hexu6788/p/5177992.html
Copyright © 2011-2022 走看看