问题标签 [redigo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 使用 gob 在 Go 中编码 websocket
我正在使用 Go 中的 websockets 编写一个聊天应用程序。
会有多个聊天室,想法是将所有连接到聊天室的 websocket 存储在 Redis 列表中。
为了在 Redis 中存储和检索 websocket,我必须对它们进行编码/解码,并且(在这个问题之后)我认为我可以使用 gob。
我正在使用github.com/garyburd/redigo/redis
Redis 和 github.com/gorilla/websocket
我的 websocket 库。
我的功能如下:
但是,我收到此错误:
cannot use ws (type *websocket.Conn) as type io.Writer in argument to gob.NewEncoder:
*websocket.Conn does not implement io.Writer (missing Write method)
have websocket.write(int, time.Time, ...[]byte) error
want Write([]byte) (int, error)
这个错误是什么意思?编码错误的整个想法*websocket.Conn
还是需要类型转换?
go - Scanning "false" and "true" as booleans in Redigo
How can I use redis.ScanStruct
to parse strings as booleans or even as custom types?
The struct I am using looks like this:
The RequireSecret attribute is either a "true" or "false" string, I'd like to scan it as a bool
.
go - 在结构的字段上实现 Redigo Scanner 接口
我有一个看起来像这样的结构:
如何在属性上实现Scanner接口RequireSecret
以解析authEnum
类型"never"
或redis 哈希值"sometimes"
?"always"
如何计算该值并将其分配给 authEnum?在我的代码示例RedisScan
中,永远不会被调用。
go - redigo 不同的池连接到单个服务器
所以,我有必要连接到 3 个 redis 服务器。我创建了 3 个连接池,并初始化它们中的每一个。但是 redigo 似乎只连接到单个 redis 服务器,尽管我使用不同的池获得连接。
使用 redigo,下面是我的代码
问题是,所有 3 个池都连接到最后一个服务器/连接,结果如下所示。任何想法?
go - 如何通过redis中的通配符键获取所有值
假设我在redis中有以下数据:
那么,我可以通过通配符user-1-*
(包括键和值)获取以上所有记录。
我试过KEYS user-1-*
了,但它只给出了所有的键,而不是它们的值。
如果它不支持通配符搜索,你能推荐一种存储这种数据的方法吗?
顺便说一句,我正在使用 golang redigo。
go - redisc.RetryConn 返回 null
Golang 和 redis 新手。我在亚马逊有一个有 9 个节点的 redis 集群。3个主人,每个主人有2个奴隶。共有九个节点。不使用 RetryConn 会返回 MOVED 节点错误,使用它会返回 null。提供所有节点的 IP 地址是否重要?是否可以提供 amz 在我们创建集群时提供的主机名。
我究竟做错了什么?另外,我们如何绑定所需的 conn?任何见解都会非常有帮助
docker - redis:拨号 tcp [REDIS ADDRESS] 连接:连接被拒绝
我在 docker 中使用 redigo。我有一个处理传入事件并使用 redis 进行速率限制的服务器。每 100k+ 个连接中就有一个,所以我收到以下错误:
redis: dial tcp IP ADDRESS: connect: connection refused
配置都在使用 docker-compose 的 docker 内部。我有哨兵向我发送这些错误,我想知道是否可以进行任何调整/设置来删除/减少此错误
我的 redigo 配置是
go - 结束 redigo 进程
我正在使用聊天服务器并使用 redigo 来跨许多 Web 套接字连接发布消息。我有一个 go 例程(每个用户连接)打开到 redis 的连接,订阅一些频道并等待消息。等待这个消息 -
是一个阻塞操作,因为接收函数之后的任何代码在消息进入之前都不会运行。但是我希望能够观察上下文 -
之类的。这可以使用选择来实现,还是有更惯用的写法?我正在尝试这样做,因为在当前实现中,此函数作为 go 例程运行,如果 web 会话结束,我想结束 redis 连接并完成 go 例程。