【Azure Redis 缓存】由Azure Redis是否可以自定义密码而引申出Azure PaaS的Redis服务是否可以和自建的Redis进行主从配置呢? - LuBu0505/My-Code GitHub Wiki

问题描述

 在自建的Redis服务中,可以通过 config set requirepass  设置Redis的登录密码,然后使用auth 命令输入密码。操作命令如下:

##设置密码
C:\LBWorkSpace\tool\redis>redis-cli

127.0.0.1:6379> config set requirepass Password@123
OK
127.0.0.1:6379> quit

##重新连接到Redis服务器
C:\LBWorkSpace\tool\redis>redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth Password@123
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>

那么在Azure 的Redis服务中,是否也可以用户自定义密码呢?

问题分析

在Redis中,设置密码使用的指令为CONFIG SET requirepass, 根据Azure 官方文档,CONFIG命令被禁止。**所以无法实现自定义密码。**只能根据Redis门户的Access Key中生成随机的一串密钥,由Azure平台提供。

**在Azure Redis中执行CONFIG SET REQUIREPASS 会得到ERR unknown command **  2021062101.png

在Azure门户中生成密钥 2021062102.png

重要

因为 Azure Redis 缓存实例的配置和管理由 Microsoft 进行管理,所以禁用了以下命令。 如果尝试调用它们,将收到一条类似于 "(error) ERR unknown command" 的错误消息。

  • BGREWRITEAOF
  • BGSAVE
  • CONFIG
  • DEBUG
  • MIGRATE
  • SAVE
  • SHUTDOWN
  • SLAVEOF
  • CLUSTER - 群集写命令已禁用,但允许使用只读群集命令。

引申问题

因为Azure Redis不能让用户自定义密码,所以当两个Redis作为灾备时候,需要手动的在程序中修改密钥。那么,两个Linked(在高级版的Redis中启用异地灾备)的Redis是否可以设置为相同的密钥呢?因自建的Redis服务器可以设置密钥,那么是否可以把Azure PaaS Redis和自建的Redis服务进行主从配置呢?

答案是:统统不可以。

参考资料

Azure Redis 缓存中不支持 Redis 命令:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-configure#redis-commands-not-supported-in-azure-cache-for-redis

为高级 Azure Cache for Redis 实例配置异地复制:https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-how-to-geo-replication 2021062103.png

 [完]

⚠️ **GitHub.com Fallback** ⚠️