搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
从前慢现在也慢
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
MySQL安装和配置详细教程(附navicat 12安装包)_亲测navicat 12 for mysql 安装教程
2
在WSL2上安装新版本LLVM的方法_wsl下载不了llvm
3
MySQL、Oracle、Sql Server数据库的区别_数据库区别a、oracleb、sql serverc、mongodbd、mysql只能在window
4
基于深度学习的目标跟踪_深度学习目标跟踪
5
人工智能:定义未来,揭开历史神秘面纱,展望无限可能!
6
jmeter最大请求数_jmeter梯度加压请求数
7
Linux 下QT的Android环境搭配_qt android和linux
8
Macos/linux g++ 安装OpenCV环境_macos 安装g++
9
在VSCode中使用GitHub Copilot Chat_vscode copilot chat
10
Go 语言笔试面试题(并发编程)
当前位置:
article
> 正文
数据库面试题:Redis数据存储在哪里?如何保证数据持久化?_redis数据存储在哪儿?
作者:从前慢现在也慢 | 2024-05-19 04:17:12
赞
踩
redis数据存储在哪儿?
一. Redis数据存储位置
redis是一个内存数据库, 因此数据基本上都存在于内存当中
但是Redis会定时以追加或者快照的方式刷新到硬盘中.
由于redis是一个内存数据库, 所以读取写入的速度是非常快的, 所以经常被用来做数据, 页面等的缓存。
二. Redis如何保证数据持久性
Redis保证数据持久性的方式有两种:
RDB持久化():RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。
AOF持久化():一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。然后在服务重启以后,会执行这些命令来恢复数据。
2.1 RDB持久化
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。
RDB的优势:
RDB文件紧凑,
全量备份
,非常适合用于进行备份和灾难恢复。
生成RDB文件的时候,
redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作
。
RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
RDB的劣势:
RDB快照是一次全量备份,存储的是内存数据的二进制序列化形式,存储上非常紧凑。
当进行快照持久化时,会开启一个子进程专门负责快照持久化,子进程会拥有父进程的内存数据,父进程修改内存子进程不会反应出来,
所以在快照持久化期间修改的数据不会被保存,可能丢失数据。
RDB的触发机制:
RDB持久化的触发机制有三种:save、bgsave、自动化
2.1 save
该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:
执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。
2.2 bgsave
执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。具体流程如下:
具体操作是Redis进程执行fork操作创建子进程,RDB持久化过程由子进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。基本上 Redis 内部所有的RDB操作都是采用 bgsave 命令。
2.3 自动触发
在配置中集中配置 save m n 的方式,表示 m秒内数据集存在n次修改时,系统自动触发bgsave 操作。
2.2 AOF持久化
全量备份总是耗时的,有时候我们提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。
然后在服务重启以后,会执行这些命令来恢复数据。
AOF文件重写:
AOF的方式也同时带来了另一个问题。持久化文件会变的越来越大。为了压缩aof的持久化文件。redis提供了bgrewriteaof命令。将内存中的数据以命令的方式保存到临时文件中,同时会fork出一条新进程来将文件重写。。
AOF 文件重写就是把 Redis 进程内的数据转化为写命令,然后同步到新的 AOF 文件中。在重写的过程中,Redis 服务器会创建一个新的 AOF 文件来替代现有的 AOF 文件,新、旧两个 AOF 文件所保存的数据库状态相同,但是新的 AOF 文件不会包含冗余命令。
AOF触发机制:
appendfsync always:每次收到写命令就立即强制写入磁盘
appendfsync everysec:每秒钟强制写入磁盘一次,在性能和持久化方面做平衡,推荐该方式。
appendfsync no:完全依赖OS的写入,一般为30秒左右一次,性能最好但是持久化最没有保证,不推荐。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/591391
推荐阅读
article
centos7
m
y
sql
数据库
y
um
安装及遇到的问题和解决和初始配置_[
root
@hadoop00...
1.
y
um
install
m
y
sql
问题:已加载插件:fastestmirror, langpacksCould no...
赞
踩
article
Redis
基础—
Redis
Desktop
Manager
(
Redis
可视化
工具)
安装
及
使用
教程...
Redis
Desktop
Manager
是一个
可视化
的
Redis
数据库管理工具,可以方便地查看和操作
Redis
...
赞
踩
article
Redis
(
主从复制
搭建)...
【代码】
Redis
(
主从复制
搭建)
Redis
(
主从复制
搭建) ...
赞
踩
article
一文掌握
Redis
线程
模型...
作者:vivo互联网服务器团队-Wang Shaodong一、概述众所周知,
Redis
是一个高性能的数据存储框架,在高并...
赞
踩
article
Redis
——
Redis
线程
模型原理_
redis
多
线程
原理...
Redis
作为缓存系统的事实标准,它的底层原理值得开发者去深入学习,
Redis
自 2009 年发布第一版之后,其单线...
赞
踩
article
Redis
多线程
网络
模型全面揭秘...
导语一文带你完全吃透
Redis
整个核心
网络
模型的原理和源码。目录导言
Redis
有多快?
Redis
为什么快?Red...
赞
踩
article
Redis
Cluster
集群
搭建及
节点
的添加、
删除
_redisclusterconfigurati...
Redis
是在内存中保存数据。_
redisclusterconfiguration
redisclusterconfig...
赞
踩
article
redis
:四、
双写
一致性
的原理和
解决方案
(
延时
双删、
分布式
锁
、异步通知MQ/
canal
)、面试回答...
当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。_
redis
读写
锁
解决
双写
一致性
?
redis
...
赞
踩
article
【
Redis
】
Redis
Template和String
Redis
Template
的
区别_redist...
Redis
Template 看这个类
的
名字后缀是 Template ,如果了解过 Spring 如何连接关系型数据库
的
,...
赞
踩
article
Redis
性
能
攻略:
Redis
-
benchmark
工具与实用
性
能
优化
技巧...
Redis
作为一种高
性
能
的内存数据库,广泛应用于各种业务场景。然而,随着业务规模的扩大和数据量的增长,
Redis
的
性
能
问...
赞
踩
article
【
Redis
】《
Redis
开发
与运维》笔记-
Chapter8
-理解
内存
_
redis
开发
与运维第八章...
八、理解
内存
1、
内存
使用统计可通过执行info memory命令获取
内存
相关指标。下表为info memory详细解释属...
赞
踩
article
redis
.
properties
最
详细参数解析_
redis
testonborrow
=
true
...
##控制一个pool
最
多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
redis
.maxIdle
=
80...
赞
踩
article
Redis
基础知识
和
核心
概念
解析:理解
Redis
的
键值
操作
和
过期策略...
在这篇博客中,我们将深入解析
Redis
的
基础知识
和
核心
概念
。特别关注
Redis
中的
键值
操作
和
过期策略,这是 Re...
赞
踩
article
缓存
Memcached
与
Redis
相同点差异点分析_
redis
和
memcached
共同点
和
...
http://www.jianshu.com/p/3bc684502f20
redis
和
memcached
的区别1、Red...
赞
踩
article
redis
MySQL
memcached
_
redis
和
memcached
的区别
和
使用场景...
Redis
和
Memcached 都是基于内存的数据存储系统。Memcached是高性能分布式内存缓存服务,其本质上就...
赞
踩
article
memcache
和
redis
的
异同_
memcache
d 与
redis
的
异同点...
memcache
和
redis
的
异同_
memcache
d 与
redis
的
异同点
memcache
d 与
redis
的
异...
赞
踩
article
第三方
缓存
软件:
Redis
和
Memcached
_
redis
memcached
...
第三方
缓存
软件:
memcached
和
redis
memcached
和
redis
相同点:都是以键值对的形式来存储数据,通俗讲...
赞
踩
article
memcached
与
redis
的区别和具体
应用
场景
...
1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的B...
赞
踩
article
Redis
与
Memcached
的区别...
共同点 :都是基于内存的数据库,一般都用来当做缓存使用。都有过期策略。两者的性能都非常高。区别 :
Redis
支持更丰富...
赞
踩
article
缓存:
Redis
和
Memcached
的
区别和
共同点
_关于
redis
和
memcache
,以...
Redis
和
Memcached
的
区别和
共同点
_关于
redis
和
memcache
,以下哪些是二者
的
共同点
?关于...
赞
踩
相关标签
redis
数据库
缓存
主从复制
java
epoll
多线程
网络
分布式
面试
后端
reids
性能测试
性能优化
Redis-benchmark