【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 【Azure Redis 缓存 Azure Cache For Redis】如何设置让Azure Redis中的RDB文件暂留更久(如7天)

问题描述

Azure Redis和所有的Redis服务一样,可以让你保留存储在Redis中的数据。以防万一在Redis服务器出现故障的时候能尽可能小的减少数据的损失。在Azure Redis服务中,默认提供了两种数据暂留的方式(RDB, AOF) .关于他们的描述引用官方说明文档如下:

Azure Redis 缓存使用以下模型提供 Redis 暂留:

  • RDB 暂留 - 配置 RDB(Redis 数据库)暂留以后,Azure Redis 缓存按照可配置的备份频率,将 Azure Redis 缓存的快照以 Redis 二进制格式暂留在磁盘上。 如果发生了灾难性事件,导致主缓存和副缓存都无法使用,则会使用最新快照重新构造缓存。 详细了解 RDB 暂留的优点缺点
  • AOF 暂留 - 配置 AOF(仅追加文件)暂留后,Azure Redis 缓存将每个写入操作保存到日志,此日志每秒至少保存到 Microsoft Azure 存储帐户一次。 如果发生了灾难性事件,导致主缓存和副缓存都无法使用,则会使用存储的写入操作重新构造缓存。 详细了解 AOF 暂留的优点缺点

https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence#what-is-data-persistence

如需要了解RDB, AOF的优缺点,可以参考Redis的官方介绍:https://redis.io/topics/persistence#rdb-advantages

由于RDB备份默认只会保留最新的一份RDB文件在设置的存储账号中,旧的RDB备份会被自动删除。虽然这样的删除操作不会马上执行,但根据经验,一般在第二天旧的备份就会被清理掉所以,如果我们想让旧的RDB文件保存更长的时间如何办呢?

在Azure Redis的门户中,目前是不能做到这样的设置。但是,Azure Reids推荐了配置 rdb-backup-max-days 这个参数来实现自定义RDB文件的保留天数

You can configure the property rdb-backup-max-days alongside their other RDB persistence properties. This will enable a feature which automatically maintains a certain number of days of RDB backups in addition to the normal RDB persistence files

 

开启方式

在Powershell中使用如下命令

  • rdb-backup-enabled : 开启Redis RDB 功能,值为true,false.
  • rdb-backup-frequency : RDB功能的备份频率(间隔多少分钟备份一次当前Redis中的内容),如60分钟。
  • rdb-storage-connection-string : 为Azure的存储账号连接字符串,存放RDB文件。
  • rdb-backup-max-days : 定义RDB文件保留的最大天数。如下面命令中的7天。
PS (Az module)
PS Azure:\> # Create redis configuration JSON
PS Azure:\> $RedisConfiguration = @{"rdb-backup-enabled"="true"; "rdb-backup-frequency"="60"; "rdb-storage-connection-string"="$StorageConnectionString"; "rdb-backup-max-days"="7"}======================================================================================================================================================================================
PS Azure:\> # Create a new cache
PS Azure:\> New-AzRedisCache -ResourceGroupName $ResourceGroupName -Name $CacheName -Location $Location -Sku Premium -Size P1 -RedisConfiguration $RedisConfiguration
======================================================================================================================================================================================
PS Azure:\> # Update an existing cache
PS Azure:\> Set-AzRedisCache -ResourceGroupName $ResourceGroupName -Name $CacheName -RedisConfiguration $RedisConfiguration

PS:  当使用以上命令时,需要先使用Az 命令登录到Azure Reids。 关于链接到Azure的方式可以参考:连接到微软云Azure中国区 By VS 2019, VS Code, Powershell

安装az模块:

Install-Module -Name Az -AllowClobber -Scope CurrentUser

登录命令

az cloud set --name AzureChinaCloud
az login -u xxxx@xxxx.partner.onmschina.cn -p xxxxxxxx


或者是

Connect-AzAccount -Environment AzureChinaCloud

当该功能启用后,在Azure Storage Account(存储账号)中的表现形式如下:

在正常的RDB备份文件之外,会有一个与Redis同名的文件夹中,会自动生成periodic-export的文件夹,用于存放7天的RDB文件。

7天RDB的文件路径:

 

保存的文件列表为:

 

 

参考资料

如何为高级 Azure Redis 缓存配置数据暂留: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence#what-is-data-persistence

进行新备份以后,旧的 RDB 备份会发生什么情况: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence#what-happens-to-the-old-rdb-backups-when-a-new-backup-is-made

Redis Persistence : https://redis.io/topics/persistence

连接到微软云Azure中国区 By VS 2019, VS Code, Powershell: https://www.cnblogs.com/lulight/p/13562094.html



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
19天前
|
canal 缓存 NoSQL
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
根据对一致性的要求程度,提出多种解决方案:同步删除、同步删除+可靠消息、延时双删、异步监听+可靠消息、多重保障方案
Redis缓存与数据库如何保证一致性?同步删除+延时双删+异步监听+多重保障方案
|
20天前
|
存储 NoSQL Redis
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
Redis持久化、RDB和AOF方案、Redis主从集群、哨兵、分片集群、散列插槽、自动手动故障转移
SpringCloud基础7——Redis分布式缓存,RDB,AOF持久化+主从+哨兵+分片集群
|
3天前
|
存储 缓存 NoSQL
解决Redis缓存击穿问题的技术方法
解决Redis缓存击穿问题的技术方法
16 2
|
3天前
|
缓存 NoSQL Redis
解决 Redis 缓存穿透问题的有效方法
解决 Redis 缓存穿透问题的有效方法
13 2
|
2月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
【Azure Redis 缓存】Azure Redis服务开启了SSL(6380端口), PHP如何访问缓存呢?
|
2月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
|
2月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
|
2月前
|
缓存 NoSQL Java
Redis深度解析:解锁高性能缓存的终极武器,让你的应用飞起来
【8月更文挑战第29天】本文从基本概念入手,通过实战示例、原理解析和高级使用技巧,全面讲解Redis这一高性能键值对数据库。Redis基于内存存储,支持多种数据结构,如字符串、列表和哈希表等,常用于数据库、缓存及消息队列。文中详细介绍了如何在Spring Boot项目中集成Redis,并展示了其工作原理、缓存实现方法及高级特性,如事务、发布/订阅、Lua脚本和集群等,帮助读者从入门到精通Redis,大幅提升应用性能与可扩展性。
60 0
|
2月前
|
缓存 NoSQL Redis
【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)
【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)
|
2月前
|
缓存 NoSQL Java
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
【Azure Redis 缓存】示例使用 redisson-spring-boot-starter 连接/使用 Azure Redis 服务
下一篇
无影云桌面