zoukankan      html  css  js  c++  java
  • redis持久化配置:rdb和aof

    原文参考:https://www.cnblogs.com/xuwenjin/p/9876432.html

    redis有两种持久化方式:RDB和AOF。具体差别跟优缺点可参考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快照持久化成功了

     注意:这里的直接关闭dos窗口相当于直接kill掉进程。如果是shutdown命令关闭服务的话,redis会自动备份rdb的,这种方式关闭然后再启动数据依然会存在。所以测试的时候都是直接关闭dos窗口,kill掉redis服务进程。

    rdb存储方式在规定时间内,key、value达到一定存储次数才开始做数据持久化。rdb存储方式断开连接,会自动备份,kill进程和断电除外。

    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持久化也成功了

  • 相关阅读:
    变Win 2003为工作站
    搞笑短信
    ECC加密算法入门介绍
    搞笑短信
    万能Ghost系统制作教程
    “注册编辑已被管理员停用”之解决办法
    让Win7任务栏的“库”显示“我的电脑”
    全景拼图利器PTGui Pro 9.1.6 Retail汉化版
    Win7远程桌面不能连接的解决方案
    到底谁霸占了A类的IP地址
  • 原文地址:https://www.cnblogs.com/super-chao/p/15138923.html
Copyright © 2011-2022 走看看