| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Database.Redis.URL
Synopsis
Documentation
parseConnectInfo :: String -> Either String ConnectInfo Source #
Parse a from a URL according to the Rules in Redis clientConnectInfo
Standalone Redis:
redis :// [[username :] password@] host [:port][/database]
>>>parseConnectInfo "redis://username:password@host:42/2"Right (ConnInfo {connectAddr = ConnectAddrHostPort "host" 42, connectAuth = Just "password", connectUsername = Just "username", connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})
>>>parseConnectInfo "redis://password@host:42/2"Right (ConnInfo {connectAddr = ConnectAddrHostPort "host" 42, connectAuth = Just "password", connectUsername = Nothing, connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})
TLS-enabled Redis:
rediss :// [[username :] password@] host [: port][/database]
Unix socket Redis:
redis-socket :// [[username :] password@]path [? [&database=database]
>>>parseConnectInfo "redis-socket://password@/tmp/redis.sock?database=2"Right (ConnInfo {connectAddr = ConnectAddrUnixSocket "/tmp/redis.sock", connectAuth = Just "password", connectUsername = Nothing, connectDatabase = 2, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Nothing, connectHooks = Hooks {...}, connectPoolLabel = ""})
>>>parseConnectInfo "redis://username:password@host:42/db"Left "Invalid port: db"
The scheme is validated, to prevent mixing up configurations:
>>>parseConnectInfo "postgres://"Left "Wrong scheme postgres:"
Beyond that, all values are optional. Omitted values are taken from
:defaultConnectInfo
>>>parseConnectInfo "rediss://"Right (ConnInfo {connectAddr = ConnectAddrHostPort "localhost" 6379, connectAuth = Nothing, connectUsername = Nothing, connectDatabase = 0, connectMaxConnections = 50, connectNumStripes = Just 1, connectMaxIdleTime = 30s, connectTimeout = Nothing, connectTLSParams = Just (ClientParams ...), connectHooks = Hooks {...}, connectPoolLabel = ""})