问题描述
Azure Cache for Redis有默认备份可以用于恢复么? 答: 只有高级版Redis有。
问题原因
Azure Cache for Redis有不同的版本定价层(基本 Basic,标准 Standard,高级 Premium),在使用中,基本功能一直,但是性能和高级功能则差别巨大, 如数据暂存(RDB, AOF)只有高级版有此功能。
基本 | 标准 | 高级 | |
基本缓存是单个缓存节点,适用于开发/测试和非关键型工作负荷。 | 基于主/从复制的生产级别缓存服务。 | 适合企业的级别,可用作缓存和暂留数据。专为最大规模和企业集成而设计。 | |
缓存 | 是 | 是 | 是 |
复制和故障转移 | - | 是 | 是 |
SLA | 基本级别没有服务级别协议 | 99.9% | 99.9% |
配置 Redis(Keyspace 通知等) | - | 是 | 是 |
Redis 数据暂留 | - | - | 是 |
Redis 群集 | - | - | 是 |
扩大到多个缓存单位 | - | - | 是 |
Azure 虚拟网络 | - | - | 是 |
内存大小 | 250 MB - 53 GB | 250 MB - 53 GB | 6 GB - 530 GB* |
网络性能 | 低 - 高 | 低 - 高 | 中等 - 最高 |
客户端连接的最大数量 | 20000 | 20000 | 40000 |
*根据请求可缩放更多实例。 |
根据上表:对于高级版Redis是可以配置数据暂留的,并且也可以进行导入导出功能,是可以备份redis数据的,而标准版和基本版是无法进行数据暂留和导入导出操作的
解决办法
一:如果使用的Azure Redis为高级版,则非常简单,直接使用Redis的导入或者导出。详细文档可以参考: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-import-export-data
二:如果使用的是标准版或者基础版,该版本未提供导入导出功能,如果想要导出较为麻烦,可参考以下操作方法:
- 将原Redis Server升级至高级版,之后导出数据,然后在将原Redis Server删除(注意,升级到高级版是无法降级的)
- 导出的数据文件,实际是RDB文件,您可以将此RDB文件还原至你本地的Redis Server (Version 3.2 +)
- 在本地Redis Server使用BGREWRITEAOF,将数据导出为AOF格式文件。
- 执行以下命令,将AOF文件内容导入到Azure Redis,建议在liuix下执行该命令,确保Azure redis 6379端口打开
redis-cli -h <your redis name>.redis.cache.chinacloudapi.cn –a youaccesskey -p 6379 --pipe < appendonly.aof
第二步操作方式示例
1)升级Redis并导出Redis的数据(RDB), 在配置的Storage Account(存储账号)中下载该文件,然后改名为dump.rdb。
2)直接Copy到Redis在本地目录中。 Windows中的Redis可以从Github中下载:https://github.com/microsoftarchive/redis/releases
3)在使用Redis-cli连接到本地,通过 info Keyspace命令查看当前reids中有多少Keys信息。
(Linux中的安装方式可以参考redis官网: https://redis.io/topics/quickstart)
4)使用Redis-cli BGREWRITEAOF命令,把当前的所有数据保存为AOF格式文件。默认输出的AOF文件为:appendonly.aof
5)使用redis-cli -h yourredisname.redis.cache.chinacloudapi.cn -a rediskeys= -p 6379 --pipe <appendonly.aof 完成传输,当输出errors:0, replies: 500016即表示pipe keys成功。同理也可以在azure redis的console中查看当前reids info信息。
6)在Azure 的Redis门户中,也可以查看到与上一步中同样的Keys信息
参考资料
用于 Redis 的 Azure 缓存: https://www.azure.cn/pricing/details/cache/
在 Azure Redis 缓存中导入和导出数据: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-import-export-data
如何为高级 Azure Redis 缓存配置数据暂留: https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-premium-persistence
如何迁移 Azure Redis: https://docs.azure.cn/zh-cn/articles/azure-operations-guide/redis-cache/aog-redis-cache-howto-migration