Redis 数据存储位置 导出数据

Go语言实现Redis内存占用分析并排序导出CSV文件 Go语言(又称Golang)是由Google开发的一种静态类型、编译型语言。它设计简洁、快速、安全,并且在并发处理方面表现优异。作为一门新兴的编程语言,Go已经在云计算、微服务架构以及大型分布式系统等领域得到广泛应用。Redis支持多种数据类型,每种类型都具有不同的特性。最基本的数据类型包括:字符串(String):最基本的类型,二进制安全,可以包含任何数据,如图片或者序列化的对象。列表(List):列表是一个简单的字符串列表,按照插入顺序排序。集合(Set) 阅读详情

文章 Redis 快照持久化学习笔记 介绍 Redis 快照持久化的功能,除了快照持久化外,Redis 还提供了 AOF(Append Only File)持久化功能。与快照持久化通过直接保存 Redis 的键值对数据不同,AOF 持久化是通过保存 Redis 执行的写命令来记录 Redis 的内存数据。
AOF 持久化的原理

理论上说,只要我们保存了所有可能修改 Redis 内存数据的命令(也就是写命令),那么根据这些保存的写命令,我们可以重新恢复 Redis 的内存状态。AOF 持久化正是利用这个原理来实现数据的持久化与数据的恢复的。
Redis AOF 持久化原理如图 1 与图 2 所示。

这里写图片描述

图1:Redis 将写命令保存到 AOF 文件中

这里写图片描述
图2:Redis 利用 AOF 文件还原内存数据
AOF 配置

为了打开 AOF 持久化的功能,我们只需要将 redis.conf 配置文件中的appendonly配置选项设置为yes即可。涉及 AOF 持久化的几个常用配置如下所示:

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

 

    appendonly:是否打开 AOF 持久化功能
    appendfilename:AOF 文件名称
    appendfsync:同步频率,可选配置如表1所示

表 1:appendfsync 选项及同步频率
选项     同步频率
always     每个 Redis 命令都要同步写入硬盘。这样会严重降低 Redis 的性能
everysec     每秒执行一次同步,显式地将多个写命令同步到硬盘
no     让操作系统来决定应该何时进行同步

AOF 文件的生成过程具体包括命令追加,文件写入,文件同步三个步骤。
Redis 打开 AOF 持久化功能后,Redis 在执行完一个写命令后,都会将执行的写命令追回到 Redis 内部的缓冲区的末尾。这个过程是命令的追加过程。
接下来,缓冲区的写命令会被写入到 AOF 文件,这一过程是文件写入过程。对于操作系统来说,调用write函数并不会立刻将数据写入到硬盘,为了将数据真正写入硬盘,还需要调用fsync函数,调用fsync函数即是文件同步的过程。只有经过文件同步过程,AOF 文件才在硬盘中真正保存了 Redis 的写命令。appendfsync 配置选项正是用来配置将写命令同步到文件的频率的,各个选项的值的含义如表 1 所示。
AOF 文件

前面我们提到,AOF 持久化是通过 AOF 文件来实现的,那么 AOF 里面是如何保存 Redis 的写命令的呢?
假设我们对一个空的 Redis 数据库执行以下命令:

set msg hello
set site leehao.me

 

执行后,Redis 数据库保存了键 msg 与 site 的数据。打开保存的 AOF 文件appendonly.aof(AOF 文件的路径和名称由 redis.conf 配置,具体可以参考上面 AOF 配置的描述),可以看到其内容为:

*2
$6
SELECT
$1
0
*3
$3
set
$3
msg
$5
hello
*3
$3
set
$4
site
$9
leehao.me

appendonly.aof以 Redis 协议格式 RESP 来保存写命令。由于 RESP 协议中包含了换行符,所以上面展示的 AOF 文件时遇到换行符时进行了换行。在 AOF 文件里面,除了用于指定数据库的 SELECT 命令是自动添加的之外,其他都是我们通过客户端发送的命令。
appendonly.aof保存的命令会在 Redis 下次重启时使用来还原 Redis 数据库。
重写 / 压缩 AOF 文件

由于 Redis 会不断地将被执行的命令记录到 AOF 文件里面,所以随着 Redis 不断运行,AOF 文件的体积会越来越大。另外,如果 AOF 文件的体积很大,那么还原操作所需要的时间也会非常地长。
为了解决 AOF 文件越来越大的问题,用户可以向 Redis 发送 BGREWRITEAOF 命令,这个命令会移除 AOF 文件中冗余的命令来重写 AOF 文件,使 AOF 文件的体积变得尽可能地小。
BGREWRITEAOF 的工作原理和快照持久化命令 BGSAVE 的工作原理类似,Redis 会创建一个子进程来负责对 AOF 文件进行重写。
值得注意的是,进行 AOF 文件重写时,如果原来的 AOF 文件体积已经非常大,那么重写 AOF 并删除旧 AOF 文件的过程将会对 Redis 的性能造成较大的影响。
为此,Redis 提供auto-aof-rewrite-percentage和auto-aof-rewrite-min-size两个配置选项来对 AOF 重写进行配置。auto-aof-rewrite-percentage和auto-aof-rewrite-min-size两个配置选项的含义可以参考 redis.conf 配置中的详细说明,具体来说,auto-aof-rewrite-percentage配置当 AOF 文件需要比旧 AOF 文件增大多少时才进行 AOF 重写,而auto-aof-rewrite-min-size则配置当 AOF 文件需要达到多大体积时才进行 AOF 重写。只有这两个配置的条件都达到时,才会进行 AOF 重写。
AOF 的优点

    AOF 持久化的方法提供了多种的同步频率,即使使用默认的同步频率每秒同步一次,Redis 最多也就丢失 1 秒的数据而已。
    AOF 文件使用 Redis 命令追加的形式来构造,因此,即使 Redis 只能向 AOF 文件写入命令的片断,使用 redis-check-aof 工具也很容易修正 AOF 文件。
    AOF 文件的格式可读性较强,这也为使用者提供了更灵活的处理方式。例如,如果我们不小心错用了 FLUSHALL 命令,在重写还没进行时,我们可以手工将最后的 FLUSHALL 命令去掉,然后再使用 AOF 来恢复数据。

AOF 的缺点

    对于具有相同数据的的 Redis,AOF 文件通常会比 RDF 文件体积更大。
    虽然 AOF 提供了多种同步的频率,默认情况下,每秒同步一次的频率也具有较高的性能。但在 Redis 的负载较高时,RDB 比 AOF 具好更好的性能保证。
    RDB 使用快照的形式来持久化整个 Redis 数据,而 AOF 只是将每次执行的命令追加到 AOF 文件中,因此从理论上说,RDB 比 AOF 方式更健壮。官方文档也指出,AOF 的确也存在一些 BUG,这些 BUG 在 RDB 没有存在。

参考资料

    Redis 实战,Josiah L. Carlson 著,黄健宏译,人民邮电出版社,2015年
    Redis 设计与实现,黄健宏著,机械工业出版社,2015年
    https://redis.io/topics/persistence
    https://redis.io/topics/protocol
---------------------
作者:haozlee
来源:优快云
原文:https://blog.youkuaiyun.com/lihao21/article/details/75269622
版权声明:本文为博主原创文章,转载请附上博文链接!

EAST算法(Efficient and Accuracy Scene Text)) 1.EAST模型简介 本文介绍的文本检测模型EAST,便简化了中间的过程步骤,直接实现端到端文本检测,优雅简洁,检测的准确性和速度都有了进一步的提升。如下图: 其中,(a)、(b)、(c)、(d)是几种常见的文本检测过程,典型的检测过程包括候选框提取、候选框过滤、bouding box回归、候选框合并等阶段,中间过程比较冗长。而(e)即是本文介绍的EAST模型检测过程,从上图可看出,其过程简化为只有FCN阶段(全卷积网络)、NMS阶段(非极大抑制),中间过程大大缩减,而且输出结果支持文本行、单词的多个角度 阅读详情

相关推荐

TLS回调函数–一文看懂(详)

TLS回调函数 CTF RE

Joyce_hjll的博客 3716

Redis

Redis

weixin_57309586的博客 2281

ADS124S08配置避坑指南:从SPI时序到寄存器设置,手把手教你调通24位ADC

本文详细解析了ADS124S08 24位ADC的SPI时序配置、寄存器设置及外围电路设计中的关键细节,帮助工程师避开常见陷阱。从SPI通信模式选择到DRDY引脚读取优化,再到基准电压启动时间调整,提供了实战验证的解决方案,确保高精度数据采集的稳定性。

weixin_29192365的博客 285

【Redis 实战】dump.rdb、appendonly.aof 文件路径

本文是实战性文章,带大家一起找找 `dump.rdb` 和 `apendonly.aof` 文件的路径。 redis 服务在启动时有两种方式,既可以指定配置文件,也可以不指定配置文件。

持之以恒 5634

自然二进制数与格雷码的相互转换

自然二进制数与格雷码两者优势: 自然二进制数的编码方式简单明了,容易理解,在加减运算中能够直接进行,同时十分方便进行一些位运算操作(如移位、取反等)。 格雷码计数时只有一位变化,可有效减少计数器状态的冗余转换,同时在传输数据时能够减小传输错误的概率,此外带权重编码处理更加方便。 在一定程度上自然二进制数与格雷码优缺点基本相反,综上所述,自然二进制数和格雷码各有优劣之处,需要根据具体应用场景选择合适的编码方式。简单来说,在计数器和编码器中,倾向于使用格雷码;而在进行加减运算时,则倾向于使用自然二进制数。

Loudrs的博客 7490

2025美赛C题奥运奖牌榜模型(附代码+全保姆教程)Models for Olympic Medal Tables

伟大教练”效应的测量方法定义奖牌变化率:−−​如果变化率显著为正,且超出历史平均增长率,则认为存在“伟大教练”效应。使用统计方法(如t检验)验证教练到来是否带来显著性差异。

博客 6370

redis的数据存储在哪里

首先要明白redis是一个数据库 redis是一个内存数据库, 所有数据基本上都存在于内存当中, 会定时以追加或者快照的方式刷新到硬盘中. 由于redis是一个内存数据库, 所以读取写入的速度是非常快的, 所以经常被用来做数据, 页面等的缓存。来源:https://zhidao.baidu.com/question/1514820040586721660.html。

m0_67393039的博客 987

Android系统修改驱动固定USB摄像头节点绑定前后置摄像头

Android系统中usb摄像头节点会因为摄像头所接的usb口不同或者usb设备识别顺序不一样而出现每次开机生成的video节点不一样的问题。由于客户app调用摄像头时,需要固定摄像头的节点。因此需要针对前面的情况做处理。

Android系统开发笔记 2250

查找redis数据库的路径

请注意,在修改 Redis 配置文件或数据库路径时,请确保遵循最佳实践和安全准则。在进行更改之前,建议备份配置文件和数据库。您还可以通过连接到 Redis 服务器并执行。Redis 数据库的路径通常由配置文件中的。如果您不确定配置文件的位置,可以尝试使用。在这个例子中,Redis 数据库的路径是。Redis 配置文件通常命名为。使用文本编辑器打开找到的。

qq_44534541的博客 2226

【EB_Tresos专题】-01-EB Tresos导入工程

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 6433

simulink的电动汽车制动系统热管理仿真

本文系统研究了电动汽车制动系统热管理仿真技术。通过建立机电液多物理场耦合模型,分析了不同工况下的动态热平衡特性。提出基于MPC的动态调节和NSGA-II多目标优化算法,使电池温度波动降低60%。创新性采用石墨烯相变材料与微通道液冷复合技术,冷却系统能耗减少40%。研究构建了完整的工程验证平台,涵盖200kW电制动测试台和高精度热成像系统。展望指出,未来将结合Transformer预测和强化学习算法,进一步优化热管理策略。该研究为电动汽车制动系统热管理提供了从理论建模到工程实施的完整解决方案。

xiaoheshang_123的博客 121

Redis6(二)

5.Redis 的发布和订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息 Redis 客户端可以订阅任意数量的频道 5.1 发布订阅命令行实现 1. 打开一个客户端订阅 channel1 SUBSCRIBE channel1 2.打开另一位客户端,给 channel1 发布消息 hello publish channel1 hello 6.Redis 新数据类型 6.1 Bitmaps 现代计算机用二进制(位)作为信息的基础单位,1个

HolleDream的博客 496

《QT+PCL》点云配准进阶——GROR配准

GROR点云配准

阁楼 1317

redis 导出dump

我整理的一些关于【Redis,redis,bash】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1Redis 导出 Dump 的完整指南 Redis 是一个强大的内存数据存储,常用于缓存系统和数据存储。导出 Redis 数据的过程主要涉及到将 Redis 中的数...

weixin_40829030的博客 212

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Go语言爬虫系列04】数据存储与导出

本文是Go语言爬虫系列的第四篇,深入探讨爬虫数据的存储与导出技术,详细比较各种存储方案的优缺点,包括文件系统存储(CSV、JSON、XML)、关系型数据库(MySQL)以及NoSQL数据库(MongoDB)的实现,同时介绍数据导出与格式转换的有效方法,帮助读者构建完整的爬虫数据管理流程。

GopherTribe的博客 1100

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Redis 数据存储

Redis 数据存储位置 导出数据 qq1413139134 2015-12-23 15:25:00 浏览5527 评论0 云数据库Redis版 摘要: Redis是一款支持多种数据类型的Key-Value数据库。 这里介绍下如何从Redis中导出数据。   数据是如何存储的?、 Redis中是把数据保存到内存中的,但是它也会定期的把数据写会到硬盘中。 Re

boshuzhang的专栏 458

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Redis 如何导出数据

Redis是一款支持多种数据类型的Key-Value数据库。 这里介绍下如何从Redis中导出数据。   数据是如何存储的?、 Redis中是把数据保存到内存中的,但是它也会定期的把数据写会到硬盘中。 Redis保存数据有两种方式: 快照模式(Snapshot)     它支持两种快照模式:         定时快照,即按一定时间将内存中的数据保存到磁盘上。    ...

weixin_33696822的博客 569

redis存10万条数据_redis如何存储数据

飞天技术汇 | 阿里云Redis产品升级大全阿里云Redis重磅产品升级:全球多活版、混合存储版、多线程性能增强版。这期飞天技术汇你将看到● 企业如何实现业务快速全球化布局● 冷热数据如何分离● 多IO线程如何面对高并发业务助力企业全球化业务部署Redis全球多活产品是阿里自研的、基于云数据库 Redis 版(ApsaraDB ...文章阿里云头条2018-09-031653浏览量【干货合集】No...

weixin_40003233的博客 2214

MySQL vs Redis 终极对决:从存储原理到实战优化,这篇让你彻底搞懂数据存储的 “最优解”

在数据存储的江湖里,MySQL 稳坐关系型数据库 “老大哥” 宝座,Redis 则是内存数据库 “极速先锋”,二者看似对立,实则在业务场景中互补共生。本文从底层架构到上层应用,深度拆解两者在数据存储、客户端架构、安全权限、性能优化等六大核心领域的异同: 存储本质差异:MySQL 用表结构锁定制约化数据,Redis 靠灵活键值对驰骋非结构化场景,磁盘与内存的碰撞如何催生 “MySQL 存核心 + Redis 加速读” 的黄金组合? 性能突围之道:MySQL 靠索引优化复杂查询,Redis 用内存计算秒杀高频

m0_73359068的博客 1252

【Docker】docker内的MySQL,Redis,PostgreSQL数据库容器的数据,备份、导出

如果容器崩溃或删除,数据会不会丢失?其实只要你在部署时通过的方式保存数据,就可以避免这一问题。注意可以通过查看Mounts,以获取挂载信息从中可以看到docker这样也可以解释:在保留/opt/docker/mysql/data的情况下,重新run一个容器,将容器卷挂载配置好后,容器继承数据的行为你的 MySQL 数据被挂载到了宿主机的即使容器崩溃或删除,数据依然会保存在宿主机上。使用。

m0_74282926的博客 1010

Python3网络爬虫实战-34、数据存储:非关系型数据库存储:Redis

Redis 是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单,在本节我们介绍一下 Python 的 Redis 操作,主要介绍 RedisPy 这个库的用法。 1. 准备工作 在本节开始之前请确保已经安装好了 Redis 及 RedisPy库,如果要做数据导入导出操作的话还需要安装 RedisDump,如没有安装可以参考第一章的安装说明。 2. R...

Python追梦 255

【Python】Python3网络爬虫实战-34、数据存储:非关系型数据库存储:Redis

Redis 是一个基于内存的高效的键值型非关系型数据库,存取效率极高,而且支持多种存储数据结构,使用也非常简单,在本节我们介绍一下 Python 的 Redis 操作,主要介绍 RedisPy 这个库的用法。 1. 准备工作 在本节开始之前请确保已经安装好了 Redis 及 RedisPy库,如果要做数据导入导出操作的话还需要安装 RedisDump,如没有安装可以参考第一章的安装说明。 2. R...

Python8年程序员教程分享 355

Redis数据库

redis特性 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 redis应用场景 缓存:redis所有的数据是放在内存中的(内存数据库) 数据库 消息中间件(队列系统) redis数据结构及操作 字符串(string) 字符串类型是redis中最基础的数据存储类型,该

砺剑十年的博客 4762
上一篇: Redis学习——Redis持久化之RDB备份方式保存数据
下一篇: linux centos 如何查看操作系统版本信息
chenrui310
博客等级 码龄15年 165粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值