问题描述

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. 乔悟空-CTF-i春秋-Web-SQL

    2020.09.05 是不是有些题已经不能做了--费了半天,到最后发现做不出来,和网上大神的方法一样也不行,最搞笑的有个站好像是别人运营中的,bug好像被修复了-- 做题 题目 题目地址 做题 尝试简 ...

  2. Druid连接池配置全攻略

    Druid是阿里开源出来的数据库连接池,性能非常好,还自带日志监控. 它的DataSource类为:com.alibaba.druid.pool.DruidDataSource. 由于使用的yaml格 ...

  3. [LeetCode] 337. 打家劫舍 III (树形dp)

    题目 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个&q ...

  4. css3 压缩及验证工具

    1.css w3c统一验证工具 网址:http://www.csstats.com/ 如果你想要更全面的,这个神奇,你值得拥有: w3c统一验证工具:http://validator.w3.org/u ...

  5. SpringBoot(20)---断言(Assert)

    SpringBoot(20)---断言(Assert) 我们在写单元测试的时候,除了接口直接抛异常而导致该单元测试失败外,还有种是业务上的错误也代表着该单元测试失败.好比我们在测试接口的时候, 该接口 ...

  6. iOS多线程之超实用理论+demo演示(可下载)

    目录 背景简介 GCD.OperationQueue 对比 核心理念 区别 GCD 队列 串行队列(Serial Queues) 并发队列(Concurrent Queues) 串行.并发队列对比图 ...

  7. linux内存分配与回收

    前言 之前在实习时,听了 OOM 的分享之后,就对 Linux 内核内存管理充满兴趣,但是这块知识非常庞大,没有一定积累,不敢写下,担心误人子弟,所以经过一个一段时间的积累,对内核内存有一定了解之后, ...

  8. XDCMS审计(复现)

    最近开始学习审计,拿一些简单cms的漏洞复现一下.源码在文末会分享出来. 0x01 index.php <?php if(!file_exists("data/config.inc.p ...

  9. 需要完成PAT作业和微博作业的具体方法

    http://www.cnblogs.com/c-programing-language/p/6703508.html

  10. 一篇文章搞定 Nginx 反向代理与负载均衡

    代理 要想弄明白反向代理,首先要知道啥是正向代理,要搞懂正向代理只需要知道啥是代理即可.代理其实就是一个中介,在不同事物或同一事物内部起到居间联系作用的环节.比如买票黄牛,房屋中介等等. 在互联网中代 ...