返回顶部
首页 > 资讯 > 数据库 >Redis之-AOF
  • 258
分享到

Redis之-AOF

2024-04-02 19:04:59 258人浏览 独家记忆
摘要

AOF是基于日志的,类似于oracle的redo,Mysql的binlog日志。 Aof 的配置appendonly no # 是否打开 aof日志功能 appendfsync always # 每1个

AOF是基于日志的,类似于oracle的redo,Mysql的binlog日志。

Aof 的配置
appendonly no # 是否打开 aof日志功能

appendfsync always # 每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒写1次
appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快,

no-appendfsync-on-rewrite yes: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写
appendfilename /var/dir/appendonly.aof #文件的路径

做个试验:
1,编辑Redis.conf文件
开启aof功能,并命名aof filename
2,pkill -9 redis
3,重新启动redis
[root@test-laoyangtest redis]# pkill -9 redis
[root@test-laoyangtest redis]# ./bin/redis-server ./redis.conf
4,查看aof目录下aof文件
[root@test-laoyangtest dir]# more laoyang-appendonly.aof --为空
5,设定几个键值,然后在查看aof文件
[root@test-laoyangtest redis]# ./bin/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set site www.woda.com
OK
127.0.0.1:6379> set www baidu.com
OK

aof文件有内容产生了
[root@test-laoyangtest dir]# more laoyang-appendonly.aof
2
$6
SELECT
$1
0
3
$3
set
$4
site
$12
www.woda.com
*3
$3
set
$3
www
$9
baidu.com

这样有个问题,如果是自动增长的值,同一个key,操作100次,aof来回要走100条记录。如何解决?
所有的key在内存中,有1个具体的状态,把key的值,逆化成命令
比如,set age 1 然后incr age了100次。那么最后aof 可以直接set age 101(这个操作叫aof重写)解决aof越来越大的问题。

【这两个参数控制】
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写

使用工具来进行写入2w个命令
[root@test-laoyangtest redis]# ./bin/redis-benchmark -n 20000

====== MSET (10 keys) ======
20000 requests completed in 0.32 seconds
50 parallel clients
3 bytes payload
keep alive: 1

95.03% <= 1 milliseconds
99.75% <= 7 milliseconds
100.00% <= 7 milliseconds
62695.92 requests per second ---持久化的时间增长

[root@test-laoyangtest redis]# cd /var/dir/
[root@test-laoyangtest dir]# ll
总用量 8
-rw-r--r-- 1 root root 116 6月 18 15:14 dump.rdb
-rw-r--r-- 1 root root 102 6月 18 15:02 laoyang-appendonly.aof
[root@test-laoyangtest dir]# ll -h
总用量 13M
-rw-r--r-- 1 root root 1.7K 6月 18 15:32 dump.rdb
-rw-r--r-- 1 root root 13M 6月 18 15:32 laoyang-appendonly.aof

因为现在设定的重写是64M重写,我们插入20w数据试试

[root@test-laoyangtest redis]# ./bin/redis-benchmark -n 200000
46.13% <= 1 milliseconds
87.99% <= 2 milliseconds
98.80% <= 3 milliseconds
99.72% <= 4 milliseconds
99.84% <= 5 milliseconds
99.89% <= 6 milliseconds
99.90% <= 8 milliseconds
99.91% <= 9 milliseconds
99.92% <= 10 milliseconds
99.93% <= 13 milliseconds
99.94% <= 14 milliseconds
99.95% <= 47 milliseconds
99.96% <= 48 milliseconds
99.97% <= 49 milliseconds
99.98% <= 55 milliseconds
100.00% <= 56 milliseconds
100.00% <= 56 milliseconds
36596.52 requests per second

[root@test-laoyangtest dir]# ll -h
总用量 59M
-rw-r--r-- 1 root root 1.7K 6月 18 15:41 dump.rdb
-rw-r--r-- 1 root root 59M 6月 18 15:41 laoyang-appendonly.aof
[root@test-laoyangtest dir]# ll -h
总用量 2.5M
-rw-r--r-- 1 root root 1.7K 6月 18 15:41 dump.rdb
-rw-r--r-- 1 root root 2.5M 6月 18 15:42 laoyang-appendonly.aof #重写了

这会儿也可能还有冗余命令,我们可以让在内存中的,重写一下。再次减少冗余
[root@test-laoyangtest redis]# ./bin/redis-cli
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
127.0.0.1:6379>

[root@test-laoyangtest dir]# ll -h
总用量 5.2M
-rw-r--r-- 1 root root 16K 6月 18 15:44 dump.rdb
-rw-r--r-- 1 root root 5.2M 6月 18 15:44 laoyang-appendonly.aof #重写以前是5.2MB
[root@test-laoyangtest dir]# ll -h
总用量 2.0M
-rw-r--r-- 1 root root 16K 6月 18 15:44 dump.rdb
-rw-r--r-- 1 root root 2.0M 6月 18 16:19 laoyang-appendonly.aof #重写以后是2MB,取消了一些冗余数据。

您可能感兴趣的文档:

--结束END--

本文标题: Redis之-AOF

本文链接: https://lsjlt.com/news/39987.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Redis之-AOF
    AOF是基于日志的,类似于Oracle的redo,Mysql的binlog日志。 Aof 的配置appendonly no # 是否打开 aof日志功能 appendfsync always # 每1个...
    99+
    2024-04-02
  • Redis之-aof恢复
    aof恢复简讲过程: [root@ZFRC-YW-YJF-TEST-370123 redis]# pkill -9 redis[root@ZFRC-YW-YJF-TEST-370123 ~]# cd /va...
    99+
    2024-04-02
  • Redis持久化之AOF
    背景:RDB不足之处1.耗时,耗性能生成快照文件耗时,load快照文件耗时Fork子进程网络开销写文件磁盘I/O开销 2.不可控,丢失数据会丢失最后一次快照最后操作的数据。 一、工作流程Redis写操作...
    99+
    2024-04-02
  • 【Redis】Redis持久化之AOF详解(Redis专栏启动)
    📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公司后端高级...
    99+
    2023-09-05
    redis 缓存 数据库 java AOF
  • Redis的RDB和AOF
    1.数据快照RDB1.1原理(1)RDB是将某一时刻的数据持久化到磁盘中,是一种快照的方式。(2)redis在进行数据持久化的过程中,会先将数据写入到一个临时文件中,待持久化过程都结束了,才会用这个临时文件...
    99+
    2024-04-02
  • redis的rdb和aof之间有哪些区别
    这篇文章主要介绍redis的rdb和aof之间有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!持久化RDB和AOF的区别RDB持久化是指在指定的时间间隔内将内存中的数据集快照...
    99+
    2024-04-02
  • redis如何开启aof
    redis开启aof的方法:打开终端进入redis的bin目录下。输入以下命令修改配置文件。vim redis.conf直接输入“/aof”回车执行定位到aof设置。找到“appendonly no”,将其改成“appendonly yes...
    99+
    2024-04-02
  • redis怎么压缩aof
    redis压缩aof的配置示例:# 是否开启aofappendonly yes# 文件名称appendfilename "appendonly.aof"# 同步方式app...
    99+
    2024-04-02
  • 进阶的Redis之数据持久化RDB与AOF
    大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存。但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里面的数...
    99+
    2024-04-02
  • Redis持久化:rdb与aof
    [TOC] Redis 默认支持持久化,依据自己的方式,将缓存在内存中的数据存储在磁盘上! Redis支持两种持久化数据的方式。第一种持久化方法为时间点转储(point-in-time dump),转储操作既可以在“指定时间段内有...
    99+
    2021-09-25
    Redis持久化:rdb与aof
  • redis是如何加载aof
    redis加载aof文件的分析:redis重启后自动加载,例如AOF持久化开启且存在AOF文件时,优先加载AOF文件。AOF配置示例:# 是否开启aofappendonly yes# 文件名称appendfilename "appendon...
    99+
    2024-04-02
  • Redis持久化配置(rdb,aof)
    Redis的持久化有2种方式 1快照 2是日志 Rdb快照的配置选项(内存中的快照写入磁盘速度更快) 配置文件:save 900 1 // 900秒内,有1条写入,则产生快照 save 30...
    99+
    2024-04-02
  • Redis(四):持久化之---AOF持久化的配置和原理
    AOF持久化及AOF重写的配置:默认AOF方式是关闭的,如下图:如果要开启的话,就是把no改写成yes。如下图:默认文件名称appendonly.aof,你也可以修改文件名。默认保存目录同样也是配置文件中d...
    99+
    2024-04-02
  • redis之RDB、AOF与复制时对过期键怎么处理
    这篇文章将为大家详细讲解有关redis之RDB、AOF与复制时对过期键怎么处理,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生成RDB文件在执行SAVE命令或者BGSAV...
    99+
    2024-04-02
  • Redis持久化存储(AOF与RDB)
    Redis持久化存储 一部分转自: https://blog.csdn.net/canot/article/details/52886923 不能说的秘密的博客 求知若饥,虚心若愚 一部分来自: http://redis.io/topics...
    99+
    2015-06-04
    Redis持久化存储(AOF与RDB)
  • Redis--持久化RDB和AOF原理
    前言: redis持久化方式分为两种:RDB快照和AOF方式(默认为RDB模式),当Redis服务器重启的时候,会自动恢复数据,优先从AOF中恢复,其次才从RDB中恢复  一、RDB快照模式 R...
    99+
    2024-04-02
  • Redis系列(三):Redis的持久化机制(RDB、AOF)
    本篇博客是Redis系列的第3篇,主要讲解下Redis的2种持久化机制:RDB和AOF。 本系列的前2篇可以点击以下链接查看: Redis系列(一):Redis简介及环境安装。 Redis系列(二):Redis的5种数据结构及其常...
    99+
    2015-06-21
    Redis系列(三):Redis的持久化机制(RDB AOF)
  • Redis学习笔记(九) AOF持久化
    除了RDB持久化功能之外,Redis还提供了AOF持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。   服务器在启动时,可以通过载入...
    99+
    2019-11-21
    Redis学习笔记(九) AOF持久化
  • redis中的AOF持久化是什么
    redis中的AOF持久化是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。AOF持久化它也是Redis持久化的重要手段之一...
    99+
    2024-04-02
  • Redis中RDB和AOF的示例分析
    这篇文章将为大家详细讲解有关Redis中RDB和AOF的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Redis 有两种持久化方案,RDB (Redis Data...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作