问题描述

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

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

  1. spring boot redis 缓存(cache)集成

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  2. Azure DevOps Server: 使用Rest Api获取拉取请求Pull Request中的变更文件清单

    需求: Azure DevOps Server 的拉取请求模块,为开发团队提供了强大而且灵活的代码评审功能.拉取请求中变更文件清单,对质量管理人员,是一个宝贵的材料.质量保障人员可以从代码清单中分析不 ...

  3. 【Azure Redis 缓存】Azure Redis 服务不支持指令CONFIG

    问题描述 在Azure Redis的门户页面中,通过Redis Console连接到Redis后,想通过CONFIG命令来配置Redis,但是系统提示CONFIG命令不能用. 错误消息为:(error ...

  4. Windows Azure Redis 缓存服务

    8月20日,Windows Azure (中国版)开始提供Redis缓存服务,比较国际版的Microsoft Azure晚了差不多一年的时间.说实话,微软真不应该将这个重要的功能delay这么长时间, ...

  5. Azure Redis 缓存的 ASP.NET 会话状态提供程序

    Azure Redis Cache 提供了一个会话状态提供程序,你可以使用其在缓存中(而不是内存中或在 SQL Server 数据库中)存储会话状态.要使用缓存会话状态提供程序,先首先配置缓存,然后使 ...

  6. PHP 开发 APP 接口 学习笔记与总结 - Redis 缓存

    Redis 可以定期将数据备份到磁盘中(持久化),同时不仅仅支持简单的key/value 类型的数据,同时还提供list,set,hash等数据结构的存储:Memcache 只是简单的key/valu ...

  7. SpringBoot使用@Cacheable实现最简单的Redis缓存

    前言 之前我们使用过RedisTemplate来实现redis缓存,然后使用工具类来实现操作redis的存储.这样的方式好处是很自由,但是还不是最简单的处理方式.对于一些简单的应用来说,其实redis ...

  8. 简单的redis缓存操作(get、put)

    简单的redis缓存操作(get.put) 本文介绍简单的redis缓存操作,包括引入jedisjar包.配置redis.RedisDao需要的一些工具.向redis中放数据(put).从redis中 ...

  9. 缓存机制总结(JVM内置缓存机制,MyBatis和Hibernate缓存机制,Redis缓存)

    一.JVM内置缓存(值存放在JVM缓存中) 我们可以先了解一下Cookie,Session,和Cache Cookie:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cooki ...

随机推荐

  1. Robotframework自动化4-基础关键字介绍1

    前言 上一节已经介绍了APP的启动,那我们就会看到我们引用了一些关键字,对于AppiumLibrary都有哪些常用的关键呢,这一节主要介绍这一部分. AppiumLibrary 常用关键字介绍 1.关 ...

  2. python循环输出

    python 目录 python 1.九九乘法表 2.循环输出数字0-9,数字为六,跳出循环,执行其他循环,数字为八,结束循环 3.使用循环计算0-100素数的和 4.使用for循环输出三角形 1.九 ...

  3. day51:django:dispatch&模板渲染&过滤器&标签&组件&静态文件配置

    目录 1.dispatch 2.模板渲染 3.过滤器 4.标签 5.组件 6.静态文件配置 dispatch 回顾:CBV对应的URL传参 urls.py url(r'^book/(\d+)/(\d+ ...

  4. Docker镜像构建的两种方式(六)

    镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命 ...

  5. matlab数字图像处理-冈萨雷斯-读取,显示,保存图像

    图像读取:imread(filename) 显示图像‘ 显示多幅图像 保存图像 b 计算压缩比

  6. 【小白学PyTorch】12 SENet详解及PyTorch实现

    文章来自微信公众号[机器学习炼丹术].我是炼丹兄,有什么问题都可以来找我交流,近期建立了微信交流群,也在朋友圈抽奖赠书十多本了.我的微信是cyx645016617,欢迎各位朋友. 参考目录: @ 目录 ...

  7. Apache Flink on K8s:四种运行模式,我该选择哪种?

    1. 前言 Apache Flink 是一个分布式流处理引擎,它提供了丰富且易用的API来处理有状态的流处理应用,并且在支持容错的前提下,高效.大规模的运行此类应用.通过支持事件时间(event-ti ...

  8. 新手接触springboot

    新手使用springboot或者说,刚接触java行业,有些不明白的就是项目的架构是怎么样的,我今天在这儿稍微整理了一下 有些新手可能在想,springboot是怎么解决最原始的增-删-改-查, 快速 ...

  9. SpringBoot框架:'url' attribute is not specified and no embedded datasource could be configured问题处理

    一.问题如下: Description:    Failed to configure a DataSource: 'url' attribute is not specified and no em ...

  10. 【转】postgreSQL​之autovacuum性能问题分析(二)

    如上篇文章提到,如果出现了autovacuum的问题,那么这可能是个悲伤的故事.怎么解决? 笔者觉得可以从如下几个方面着手去考虑解决问题,可以避免一些坑.1) 持续观察,是不是autovacuum问题 ...