Redis数据存储技术(持久化、数据恢复、示例数据、导入数据)

news/2024/10/19 0:21:52/

目录

一、REDIS 持久化

RDB 持久化配置:

AOF 持久化:

二、REDIS 数据恢复

三、REDIS 示例数据

四、REDIS 导入数据


一、REDIS 持久化

概述:

Redis 提供了两种方式进行持久化,RDB 和 AOF。

RDB:将 Redis 在内存中的数据定期 dump 到硬盘上的一个快照文件,用于进行备份和恢复。其优点是安全,可靠且

性能高,缺点是在最近一次 RDB 文件被 dump 之后的数据丢失风险较高。

AOF:将所有的对 Redis 的写入操作都记录在一个追加类型的文件中,用于恢复数据。其优点是数据丢失的风险较

低,缺点是相对于 RDB 文件而言,文件体积更大,恢复速度更慢。

可以通过配置文件中的以下参数来控制持久化方式:

- save:设定在 N 秒内,如果有 M 个 key 被修改,则自动执行一次 RDB 操作;

- appendfsync:设定数据同步时的方式,如 always 表示每次操作都同步,everysec 表示每秒同步一次,no 表示不同

步。

需要注意的是,在同时开启 RDB 和 AOF 持久化方式时,恢复数据时 AOF 的优先级高于 RDB。

要在 Redis 中配置 RDB 持久化,需要在 redis.conf 配置文件中进行设置。

RDB 持久化配置:

# 在多长时间后,如果有多少个键发生更改,Redis 执行写操作

save 900 1

save 300 10

save 60 10000

# 持久化文件的名称和位置

dbfilename dump.rdb

# 保存持久化文件的目录

dir /var/lib/redis

在上面的示例中,配置了三个 save 语句,表示如果在 900 秒内有至少 1 个键值对被修改,Redis 就会自动执行一次

RDB 持久化操作,以便将内存中的数据快照写入到磁盘中。其他两个参数表示进一步的持久化周期设置。

dbfilename 表示持久化文件的名字,

dir 表示持久化文件应该被保存在哪个目录中。

除了在配置文件中手动设置外,可以使用 CONFIG SET 命令对 Redis 进行实时配置。

使用命令 SET CONFIG AUTO-AOF-SYNC YES 可以开启自动 AOF 同步,使用 SAVE 命令可以立即强制执行一次 RDB 持久化操作。

Redis 的 AOF 持久化是指将 Redis 服务器执行的每个写入操作都记录在追加日志文件中,这样可以确保即使服务器发

生故障,也能够保证最新的数据不会丢失。Redis 的 AOF 持久化有以下两种方式:

1、always:每次发生写入操作时都会执行同步,会影响服务器的写入性能,但数据保护程度较高。

2、everysec:每秒执行一次同步操作,折中选项,既保证了写入性能又保障了数据安全。

AOF 持久化:

1、通过编辑配置文 /etc/redis.conf 来打开 AOF 持久化功能:

appendonly yes

2、设置 AOF 日志文件的名称:

# AOF 文件名,默认值为 appendonly.aofappendfilename "myappendonly.aof"

3、设置 AOF 日志的存放目录:

# AOF 存放路径,默认值为"./"

dir /path/to/appendonly/

4、设置 AOF 持久化的同步频率:

# 设定数据同步方式,always 表示每次操作都同步,everysec 表示每秒同步一次

appendfsync everysec

5、重启 Redis 服务生效:

sudo systemctl restart redis

完成以上步骤后,Redis 就可以使用 AOF 持久化了。需要注意的是,AOF 持久化会带来一定性能损失,因此尽量选

择每秒同步一次的策略,来保证数据的安全性和性能表现的平衡。

二、REDIS 数据恢复

Redis 提供了多种数据恢复方式:从 RDB 持久化文件恢复、从 AOF 持久化文件恢复、使用 Redis 复制功能从主库恢

复数据。

以下是使用 RDB 和 AOF 持久化文件恢复数据的步骤:

1、使用 Redis 自带的命令来恢复数据。如果使用的是 RDB 持久化,可以找到最新的 dump.rdb 文件,在 redis-cli 下

执行命令即可:

redis-cli --raw < /var/lib/redis/dump.rdb

如果使用的是 AOF 持久化,可以使用 bgrewriteaof 命令或者过滤操作来获取恢复文件:

# 使用 bgrewriteaof 命令

redis-cli bgrewriteaof

grep -i "set.*key_name" /var/lib/redis/appendonly.aof > /var/lib/redis/redis_restore.aof# 或者使用 sed 过滤

sed -n '/^.*set.*key_name.*$/p' /var/lib/redis/appendonly.aof > /var/lib/redis/redis_restore.aof

# 恢复

redis-cli --pipe < /var/lib/redis/redis_restore.aof

2、将恢复文件复制到新的 Redis 服务器所在的目录中。

3、启动 Redis 服务器。

4、在 redis.conf 文件中确保已经启用了持久化,如已启用则执行以下命令:

redis-server /path/to/redis.conf

执行上述命令后就可以使用恢复的数据了,这两种方法可以根据实际需要灵活选择。

需要注意的是,Redis 持久化文件中的数据可能并不是最新的,因此在进行数据恢复之前需要确认数据恢复的时效

性和完整性。如果数据丢失太多,最好是在备份恢复之外,再尝试使用 Redis 复制功能对数据进行恢复。

三、REDIS 示例数据

Redis 官网提供了一些示例数据,可以用于学习和测试 Redis 的功能。你可以前往 Redis 官网的下载页面获取示例数

据文件。

具体下载步骤如下:

1. 打开 Redis 官网的下载页面(https://redis.io/download)

2. 在页面中找到“Sample datasets for Redis” 部分。

3. 点击链接,选择一个你想要下载的示例数据文件即可。

目前提供的示例数据文件有以下几个:

- big_data.zip:包含一些极大数据的 Redis 数据集。

- country_zip_fat_j.txt:国家表,可以用于测试模糊搜索和排序等功能。

- gfiber.py:用于生成一个二进制谷歌光纤数据集的 Python 脚本。

- geo_data.py:用于生成一个包含随机地理位置数据的 Python 脚本。

- hello-world.txt:一个简单的 Redis 教程数据集。

你可以根据自己的需要选择下载。下载完成后,解压示例数据文件,然后使用 Redis 客户端将数据导入 Redis 数据库

中,即可开始使用并学习 Redis 数据库功能。

四、REDIS 导入数据

Redis 支持多种方式导入数据,

常见的方式包括:

1. 通过 Redis 自带的命令来导入数据 

可以使用 Redis 自带的数据导入命令`SET`,以及相应的数据类型命令,将数据添加到 Redis 数据库中。例如:

SET key1 value1

HASHSET key2 field1 value1 field2 value2

LIST key3 value1 value2 value3

SET key4 value1 value2 value3

2. 通过 Redis 客户端工具导入数据

Redis 客户端工具 `redis-cli` 可以使用`SET`、`MSET`、`HSET`、`HMSET`等命令,同时还可以将数据保存在一个文本文件中,然后导入到数据库中。例如:

将保存在文件`data.txt`中的数据导入 Redis 数据库,可以使用以下命令:

cat data.txt | redis-cli --pipe

3. 通过 Redis 的持久化功能导入数据

已经进行过持久化的数据可以通过以下命令导入 Redis 数据库:

redis-cli --raw < dump.rdb

注意:使用此命令将会覆盖 Redis 数据库的所有数据。

4. 通过 Redis 数据备份/恢复来导入数据

使用 Redis 数据备份/恢复工具,在将备份文件恢复到新的 Redis 实例时,会将备份文件中的数据导入 Redis 数据

库中。

假设你已经有一份 Redis 的数据备份 `dump.rdb`,可以使用以下命令来恢复数据:

redis-server --appendonly yes

redis-cli --rdb ./dump.rdb

上述是 Redis 导入数据的常见方式,可以根据你的具体情况选择一种方式来导入数据到 Redis 数据库中。


http://www.ppmy.cn/news/349412.html

相关文章

投影仪连接wifi无法连接网络认证如何处理

小米投影仪连接带认证的wifi热点之后&#xff0c;无法弹出认证wifi账号密码输入框&#xff1f; 一、问题原因&#xff1a; 一般情况下&#xff0c;投影仪连接wifi热点之后会自动转调到对应的wifi热点认证网页&#xff0c;在对应的认证网页中填写账号密码登录&#xff1b;但是…

笔记本电脑无法连投影仪的问题

【问&#xff1a;】我的acer笔记本电脑连接投影仪后&#xff0c;刚开机的时候&#xff0c;投影仪是有图像&#xff0c;而电脑没有图象&#xff0c;但只要一进入XP的登陆界面后投影仪的图象就连信号都没有&#xff0c;电脑就出现了图象&#xff0c;怎么按FN&#xff0b;F5切换都…

C# 控制投影仪投影图片

新建投影Form窗口“FormProjector”&#xff0c;添加pictureBox控件 在主窗口“FormMain”&#xff0c;添加代码 //投影窗口FormProjector fProjector new FormProjector();private void timerProjectorState_Tick(object sender, EventArgs e){Screen[] sc;sc Screen.AllSc…

内网渗透-windows远程用户管理

文章目录 0x01 获取window权限&#xff08;管理员&#xff09;0x02 添加用户&#xff0c;并且到管理员组0x03 开启远程桌面0x04 添加到远程桌面组0x05 进行远程0x06 免责声明 0x01 获取window权限&#xff08;管理员&#xff09; 使用cs上线用户 kali:192.168.253.234 window …

深度学习笔记之Seq2seq(三)注意力机制的执行过程

深度学习笔记之Seq2seq——注意力机制的执行过程 引言回顾&#xff1a;经典 Seq2seq \text{Seq2seq} Seq2seq模型中 Context \text{Context} Context向量的缺陷注意力机制的动机 Seq2seq \text{Seq2seq} Seq2seq中的 Attention \text{Attention} Attention结构注意力模型的数学…

免费YY协议下载

yY协议官网&#xff1a;http://www.yyfass.cn/ 协议更新完毕 yY小号商铺&#xff1a;http://shop.91kami.com/yyfass 发卡网更新完毕

变现宝(知识付费)1.024源码独立版支持更新

变现宝(知识付费)1.024源码独立版支持更新 新增 详情页banner广告 修复 会员折扣为空或为0时专题支付价格都是0.01得bug 修复 不支持会员额度免费解锁的素材会员无法通过支付解锁得bug 修复 试看为0时导致免费视频pc端无法点击播放问题 修复 处理本地上传头像的URL 优化 …

交通部 808 协议2019版 - 免费下载 - 官网下载

之前公司要用808协议 开发。我看网上好多信息。2011版的已经停用废止了&#xff0c;现行的是2019版。 但是再道客巴巴上下载都有问题&#xff0c;乱七八糟的&#xff0c;念都念部通顺。 附上下载地址&#xff1a; http://jtst.mot.gov.cn/hb/search/stdHBView?id2eabe27a635…