问题描述
在自建的Redis服务中,可以通过 config set requirepass <Password> 设置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
在Azure门户中生成密钥
引申问题
因为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
[完]