我使用的是goredis,据我所见 - 客户端连接到redis服务器时有一个连接池。我不知道如何查询redis服务器,并确定它是以线程安全的方式。Threadsafe redis客户端
目前,我这样做:
我创建全局指针client
:client *goredis.Redis
那么我这样做:
go func() {
http.HandleFunc("/send_data/", trackHandler)
http.HandleFunc("/init/", initHandler)
http.ListenAndServe(":8000", nil)
}()
所以现在我想在trackHandler
和initHandler
使用client
,但我很担心,执行查询时不会有任何同步。是否有可能以这种方式混淆事物。在golang中解决这个问题的标准方法是什么?
另外我想知道这是如何工作在redis-py。 我已经看到了这个thread:
在一般情况下,我建议您:
一个。创建一个全局的redis客户端实例并让你的代码使用它。 b。创建一个全局连接池并将其传递给整个代码中的各种redis实例。
这两个都完成了同样的事情。两者都是线程安全的。
第一种情况是如何完成的?
您使用哪个redis客户端? https://github.com/xuyu/goredis? – OneOfOne
是的,确切地说。 :) – Marii