zoukankan      html  css  js  c++  java
  • redis持久化配置

    redis有两种持久化方式:RDBAOF。具体差别跟优缺点可参考redis数据的两种持久化方式对比,本篇只介绍这两种方式怎么配置

    RDB配置方式

    默认情况下,是快照RDB的持久化方式,将内存中的数据以快照的方式写入二进制文件中,默认的文件名是dump.rdb

    redis.conf默认配置:

    save 900 1
    save 300 10
    save 60 10000

     配置含义:

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

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

     60秒内,如果1万个key被修改,则发起快照保存

     默认配置不方便看效果,可将快照频率设大一点,在redis.conf中增加一行:

    save 10 1

    保存后,启动redis服务端和客户端。在客户端输入命令:

    输入完,发现dump.rdb文件的修改日期变了,并且redis服务端增加了保存日志:

    接下来,重启redis服务端和客户端,看数据是否真的持久化了:

    妥妥的~,说明使用RDB快照持久化成功了

    AOF 配置方式

    redis.conf默认配置:

    appendonly no

    配置文件中的appendonly修改为yes,开启AOF持久化。开启后,启动redis服务端,发现多了一个appendonly.aof文件

    使用AOF做持久化,每一个命令以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写,使得 AOF文件的体积不会超出保存数据集状态所需的实际大小。实际上,AOF持久化并不会立即将命令写入到硬盘文件中,而是写入到硬盘缓存,在接下来的策略中,配置久来从硬盘缓存写入到硬盘文件。所以在一定程度一定条件下,还是会有数据丢失,不过你可以大大减少数据损失

    # appendfsync always
    appendfsync everysec
    # appendfsync no

    配置含义:

    always: 每次操作都会立即写入aof文件中

    everysec: 每秒持久化一次(默认配置)

    no: 不主动进行同步操作,默认30s一次

    当然always一定是效率最低的,个人认为everysec就够用了,数据安全性能又高。Redis也允许我们同时使用两种方式,再重启redis后会从AOF中恢复数据,因为AOF比RDB数据损失小嘛

    配置好后,启动redis客户端,输入命令:

    最后的flushall是清除所有的键值。打开appendonly.aof文件,可以看到:

    去掉最后面的flushall(也可以按照redis协议增加命令),重启客户端和服务端,看数据是否真的持久化了:

    妥妥的~,说明使用AOF持久化也成功了

     

  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/xuwenjin/p/9876432.html
Copyright © 2011-2022 走看看