我正在寻找如何使用hedis通过Unix域套接字连接到redis服务器,如hackage页面中所宣传的那样:
通过 TCP 或 Unix 域套接字连接:
TCP 套接字是连接到 Redis 服务器的默认方式。对于到同一台机器上的服务器的连接,Unix 域套接字提供比标准 TCP 连接更高的性能。
从 和 的构造函数看来,我们应该填写,ConnectInfo
因为它的类型有一个名为 的构造函数。但它只显示是一个,没有格式等细节。defaultConnectInfo
connectPort
PortID
UnixSocket
UnixSocket
String
那么如何填写connectPort
to connect via Unix domain socket呢?谢谢。
更新:我试过了,发现它并不难。下面是我的hello world。
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Trans
import Database.Redis
myConnectInfo :: ConnectInfo
myConnectInfo = defaultConnectInfo { connectPort = UnixSocket "/tmp/redis.sock" }
main :: IO ()
main = do
conn <- connect myConnectInfo
runRedis conn $ do
set "hello" "hello"
set "world" "world"
hello <- get "hello"
world <- get "world"
liftIO $ print (hello,world)