怎么将redis中数据持久化

Redis数据持久化

怎么将redis中数据持久化
(图片来源网络,侵删)

Redis是一种非关系型数据库,它将数据存储在内存中,为了保证数据的持久性,需要将数据持久化到磁盘上,Redis提供了两种持久化方式:RDB和AOF。

RDB持久化

概念

RDB(Redis DataBase)持久化是将某个时间点上的所有数据都写入一个非常紧凑的二进制文件中,例如默认的dump.rdb文件,这是一个非常优秀的灾难恢复解决方案,你可以将RDB文件复制到另一个地方,当需要的时候,可以将其导入到Redis中去。

配置

可以通过修改配置文件redis.conf来开启RDB持久化功能。

900秒后会生成一次RDB快照,以下为注释掉的配置项
save 900 1
save 300 10
save 60 10000

上述配置表示在900秒(15分钟)之后,如果至少有1个key发生变化则执行一次快照。

触发方式

手动触发:使用SAVE或者BGSAVE命令,SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,对于大型数据库来说,这段时间可能很长;而BGSAVE命令则会派生出一个子进程来创建RDB文件,父进程继续处理客户端请求,新的改动会被保存到aof_buf中,当子进程完成快照时,再把aof_buf中的改动写入到RDB文件中。

自动触发:在规定时间内,如果超过指定的key被修改,则自动触发BGSAVE。

AOF持久化

概念

AOF(Append Only File)持久化以日志的形式记录服务器接收到的每一个写操作,这些记录将以Redis协议追加保存到AOF文件的末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的大小不至于超过实际需要。

配置

可以通过修改配置文件redis.conf来开启AOF持久化功能。

appendonly yes # 开启AOF持久化
appendfsync everysec # 每个second刷一次AOF,保证数据安全性

重写机制

AOF重写机制可以减小AOF文件的大小,当AOF文件大小比给定值大或者给定时间内AOF体积超过了给定值,就会自动触发rewrite,重写过程中,会把所有修改过的指令以Redis协议的形式写入到一个新的AOF文件中,新的文件体积会比旧文件小很多。

触发方式

手动触发:使用BGREWRITEAOF命令。

自动触发:根据autoaofrewritepercentage和autoaofrewriteminsize参数控制自动触发。

归纳

以上是Redis数据持久化的两种方式,可以根据不同的应用场景选择不同的持久化方式,也可以同时使用两种方式来提高数据的安全性。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/658084.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-05-27 07:34
下一篇 2024-05-27 07:36

相关推荐

  • 如何在服务器上成功挂载云盘?

    在服务器上挂载云盘,通常需要通过SSH连接到服务器,并使用命令行工具如fdisk、parted或文件系统特定的挂载命令(mount`)。具体步骤包括创建分区、格式化文件系统和挂载分区。

    2024-10-03
    040
  • redis hset set

    Redis的HSET命令用于将哈希表中的字段值设置为给定值,如果您发现无法使用HSET命令将数据存入Redis,以下是一些可能的原因以及相应的解决方案:1、检查Redis服务状态: 确保Redis服务正在运行且接受连接,可以通过执行rediscli ping来测试Redis服务是否响应,如果返回PONG,则服务正常运行。2、确认键名和……

    2024-03-08
    0111

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入