azure - 将 go 与 redis 一起使用 - 无法连接
问题描述
我正在尝试在 azure 中连接到 Redis 服务
我使用以下代码:
import (
"fmt"
"os"
"github.com/go-redis/redis"
)
func main() {
uri := os.Getenv("uri")
fmt.Println("uri is", uri)
opt, err := redis.ParseURL(uri)
if err != nil {
fmt.Println(err)
}
fmt.Println("addr is:”, opt.Addr)
fmt.Println("db is:”, opt.DB)
fmt.Println("password is:”, opt.Password)
//connect to redis
client = redis.NewClient(opt)
//Here I want to get connection
pong, err := client.Ping().Result()
https://github.com/go-redis/redis
https://godoc.org/github.com/go-redis/redis#example-ParseURL
打印的数据就像我能够连接字符串一样
uri is rediss://:bBMfQ7wFdkPHr8u%2B2zzNOzUpy85OEjYv7KbPZd8B89M%3D@e49ab3c6-8f72-416a-a6c1-ddfe75gf200e.redis.cache.windows.net:6380
addr is: e49ab3c6-8f72-416a-a6c1-ddfe75gf200e.redis.cache.windows.net:6380
db is: 0
password is: bBMfQ7wFdkPHr8u+2zzNOzUpy85OEjYv7KbPZd8B89M=
Redis 服务已启动并正在运行,我能够连接nodejs
应用程序并获取数据,知道为什么我在 go 中遇到错误:
拨打 tcp 40.128.8.87:6380:连接:连接被拒绝
我们正在尝试将一些应用程序从 Nodejs 迁移到...
奇怪的是,在nodejs中,我使用了以下方法!
https://github.com/NodeRedis/node-redis
const redisClient = redis.createClient(process.env.uri);
redisClient.on("connect", () => console.log("Redis is connected"));
更新
我提供了一个没有 ssl的新实例,它也不起作用
这是日志
uri is redis://:TKq1n%2BO29jsSdIkoysXL%2Btwd6Xi0IO0KNxw%3D@2dca2dx1-20e0-48ca-83ed-20bf52e99b97.redis.cache.windows.net:6379
addr is 2dca2dx1-20e0-48ca-83ed-20bf52e99b97.redis.cache.windows.net:6379
db is 0
password is TKq1n+O29jsSdIkoysXL+twd6Xi0IO0KNxw=
dial tcp 40.113.7.3:6379: connect: connection refused
知道我应该如何使用 GO api 正确连接到 redis 吗?
顺便说一句,当我连接到本地Redis 时它可以工作,但不能用于 azure 缓存
像这样
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "",
DB: 0,
})
也许我错过了 Redis api 中的某些内容,因为我为 nodejs 做同样的事情(连接到同一个服务实例)并且它有效!
解决方案
推荐阅读
- view - SwiftUI 中的条件视图无法编译
- javascript - Three.js - 最后一堆点没有被渲染
- java - 为什么将 0112 转换为 74?
- android - 是否可以仅发布动态功能模块的更新?
- powershell - 在 Select-string 中指定多个模式
- java - 使用 JMod 插件部署应用程序时出现错误 java.util.zip.ZipException:重复条目:classes/META-INF/MANIFEST.MF
- c - ARM 中的 ptrace 用法
- javascript - 如何制作一个从光标“逃跑”的按钮?
- java - 在 Spring Cloud Sleuth 和 MDC 中使用 bag 时如何避免手动清理?
- r - remote::github_install 依赖失败