edis-0.0.1.0: Statically typechecked client for Redis

Safe HaskellNone
LanguageHaskell2010

Database.Edis

Contents

Synopsis

How to use Edis

It's basically the same as in Hedis. Most of the entities in Hedis are re-exported, or have the same names with types.

-- connects to localhost:6379
conn <- connect defaultConnectInfo

Send commands to the server:

{-# LANGUAGE OverloadedStrings #-}
...
runRedis conn $ unEdis $ start
     'bind' _ -> set     (Proxy :: Proxy "hello")    True
     'bind' _ -> set     (Proxy :: Proxy "world")    [True, False]
     'bind' _ -> get     (Proxy :: Proxy "world")

Unfortunately Edis is not a monad, so we can't use do-notations in the program. But the example above can be rewritten with >>> like this, if no variable bindings and result passings are needed.

{-# LANGUAGE OverloadedStrings #-}
...
runRedis conn $ unEdis $ start
     >>> set     (Proxy :: Proxy "hello")    True
     >>> set     (Proxy :: Proxy "world")    [True, False]
     >>> get     (Proxy :: Proxy "world")
  • Commands

Keys

del :: KnownSymbol s => Proxy s -> Edis xs (Del xs s) (Either Reply Integer) Source #

rename :: (KnownSymbol s, KnownSymbol t, Member xs s ~ True, Get xs s ~ Just x, (s == t) ~ False) => Proxy s -> Proxy t -> Edis xs (Set (Del xs s) t x) (Either Reply Status) Source #

renamenx :: (KnownSymbol s, KnownSymbol t, Member xs s ~ True, Get xs s ~ Just x, (s == t) ~ False) => Proxy s -> Proxy t -> Edis xs (If (Member xs t) xs (Del xs s)) (Either Reply Bool) Source #

sort :: (KnownSymbol s, Serialize x, Member xs s ~ True, ((Get xs s == Just (ListOf x)) || ((Get xs s == Just (SetOf x)) || (Get xs s == Just (ZSetOf x)))) ~ True) => Proxy s -> SortOpts -> Edis xs xs (Either Reply [x]) Source #

sortStore :: (KnownSymbol s, KnownSymbol t, Member xs s ~ True, FromJust (Get xs s) ~ x, (IsList (FromJust (Get xs s)) || (IsSet (FromJust (Get xs s)) || IsZSet (FromJust (Get xs s)))) ~ True) => Proxy s -> Proxy t -> SortOpts -> Edis xs (Set xs s x) (Either Reply Integer) Source #

Strings

append :: (KnownSymbol s, Serialize x, StringOrNX xs s) => Proxy s -> x -> Edis xs (Set xs s (StringOf ByteString)) (Either Reply Integer) Source #

bitcount :: (KnownSymbol s, StringOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

bitcountRange :: (KnownSymbol s, StringOrNX xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply Integer) Source #

bitopAnd :: (KnownSymbol s, KnownSymbol t, StringOrNX xs s) => Proxy t -> Proxy s -> Edis xs (Set xs s (StringOf ByteString)) (Either Reply Integer) Source #

bitopOr :: (KnownSymbol s, KnownSymbol t, StringOrNX xs s) => Proxy t -> Proxy s -> Edis xs (Set xs s (StringOf ByteString)) (Either Reply Integer) Source #

bitopXor :: (KnownSymbol s, KnownSymbol t, StringOrNX xs s) => Proxy t -> Proxy s -> Edis xs (Set xs s (StringOf ByteString)) (Either Reply Integer) Source #

bitopNot :: (KnownSymbol s, KnownSymbol t, StringOrNX xs s) => Proxy t -> Proxy s -> Edis xs (Set xs s (StringOf ByteString)) (Either Reply Integer) Source #

decr :: (KnownSymbol s, StringOfIntegerOrNX xs s) => Proxy s -> Edis xs (Set xs s (StringOf Integer)) (Either Reply Integer) Source #

decrby :: (KnownSymbol s, StringOfIntegerOrNX xs s) => Proxy s -> Integer -> Edis xs (Set xs s (StringOf Integer)) (Either Reply Integer) Source #

get :: (KnownSymbol s, Serialize x, StringOf x ~ FromJust (Get xs s)) => Proxy s -> Edis xs xs (Either Reply (Maybe x)) Source #

getbit :: (KnownSymbol s, StringOrNX xs s) => Proxy s -> Integer -> Edis xs xs (Either Reply Integer) Source #

getrange :: (KnownSymbol s, Serialize x, StringOf x ~ FromJust (Get xs s)) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply x) Source #

getset :: (KnownSymbol s, Serialize x, Serialize y, StringOf y ~ FromJust (Get xs s)) => Proxy s -> x -> Edis xs xs (Either Reply (Maybe y)) Source #

incr :: (KnownSymbol s, StringOfIntegerOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

incrby :: (KnownSymbol s, StringOfIntegerOrNX xs s) => Proxy s -> Integer -> Edis xs xs (Either Reply Integer) Source #

incrbyfloat :: (KnownSymbol s, StringOfDoubleOrNX xs s) => Proxy s -> Double -> Edis xs xs (Either Reply Double) Source #

psetex :: (KnownSymbol s, Serialize x) => Proxy s -> Integer -> x -> Edis xs (Set xs s (StringOf x)) (Either Reply Status) Source #

set :: (KnownSymbol s, Serialize x) => Proxy s -> x -> Edis xs (Set xs s (StringOf x)) (Either Reply Status) Source #

setbit :: (KnownSymbol s, Serialize x, StringOrNX xs s) => Proxy s -> Integer -> x -> Edis xs (Set xs s (StringOf x)) (Either Reply Integer) Source #

setex :: (KnownSymbol s, Serialize x) => Proxy s -> Integer -> x -> Edis xs (Set xs s (StringOf x)) (Either Reply Status) Source #

setnx :: (KnownSymbol s, Serialize x) => Proxy s -> x -> Edis xs (If (Member xs s) xs (Set xs s (StringOf x))) (Either Reply Bool) Source #

setrange :: (KnownSymbol s, Serialize x, StringOrNX xs s) => Proxy s -> Integer -> x -> Edis xs (Set xs s (StringOf x)) (Either Reply Integer) Source #

strlen :: (KnownSymbol s, StringOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

Lists

blpop :: (KnownSymbol s, Serialize x, ListOf x ~ FromJust (Get xs s)) => Proxy s -> Integer -> Edis xs xs (Either Reply (Maybe (ByteString, x))) Source #

brpop :: (KnownSymbol s, Serialize x, ListOf x ~ FromJust (Get xs s)) => Proxy s -> Integer -> Edis xs xs (Either Reply (Maybe (ByteString, x))) Source #

brpoplpush :: (KnownSymbol s, KnownSymbol t, Serialize x, ListOf x ~ FromJust (Get xs s), ListOrNX xs s) => Proxy s -> Proxy t -> Integer -> Edis xs (Set xs s (ListOf x)) (Either Reply (Maybe x)) Source #

lindex :: (KnownSymbol s, Serialize x, ListOf x ~ FromJust (Get xs s)) => Proxy s -> Integer -> Edis xs xs (Either Reply (Maybe x)) Source #

linsertBefore :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> x -> x -> Edis xs xs (Either Reply Integer) Source #

linsertAfter :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> x -> x -> Edis xs xs (Either Reply Integer) Source #

llen :: (KnownSymbol s, ListOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

lpop :: (KnownSymbol s, Serialize x, Just (ListOf x) ~ Get xs s) => Proxy s -> Edis xs xs (Either Reply (Maybe x)) Source #

lpush :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> x -> Edis xs (Set xs s (ListOf x)) (Either Reply Integer) Source #

lpushx :: (KnownSymbol s, Serialize x, Just (ListOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply Integer) Source #

lrange :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply [x]) Source #

lrem :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> Integer -> x -> Edis xs xs (Either Reply Integer) Source #

lset :: (KnownSymbol s, Serialize x, IsList (FromJust (Get xs s)) ~ True) => Proxy s -> Integer -> x -> Edis xs xs (Either Reply Status) Source #

ltrim :: (KnownSymbol s, ListOrNX xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply Status) Source #

rpop :: (KnownSymbol s, Serialize x, Just (ListOf x) ~ Get xs s) => Proxy s -> Edis xs xs (Either Reply (Maybe x)) Source #

rpoplpush :: (KnownSymbol s, KnownSymbol t, Serialize x, ListOrNX xs s, ListOrNX xs t) => Proxy s -> Proxy t -> Edis xs (If (IsList (FromJust (Get xs s))) (Set xs s (ListOf x)) xs) (Either Reply (Maybe x)) Source #

rpush :: (KnownSymbol s, Serialize x, ListOrNX xs s) => Proxy s -> x -> Edis xs (Set xs s (ListOf x)) (Either Reply Integer) Source #

rpushx :: (KnownSymbol s, Serialize x, Just (ListOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply Integer) Source #

Hashes

hdel :: (KnownSymbol k, KnownSymbol f, HashOrNX xs k) => Proxy k -> Proxy f -> Edis xs (DelHash xs k f) (Either Reply Integer) Source #

hexists :: (KnownSymbol k, KnownSymbol f, HashOrNX xs k) => Proxy k -> Proxy f -> Edis xs xs (Either Reply Bool) Source #

hget :: (KnownSymbol k, KnownSymbol f, Serialize x, Just (StringOf x) ~ GetHash xs k f) => Proxy k -> Proxy f -> Edis xs xs (Either Reply (Maybe x)) Source #

hincrby :: (KnownSymbol k, KnownSymbol f, HashOrNX xs k) => Proxy k -> Proxy f -> Integer -> Edis xs (SetHash xs k f Integer) (Either Reply Integer) Source #

hincrbyfloat :: (KnownSymbol k, KnownSymbol f, HashOrNX xs k) => Proxy k -> Proxy f -> Double -> Edis xs (SetHash xs k f Double) (Either Reply Double) Source #

hkeys :: (KnownSymbol k, HashOrNX xs k) => Proxy k -> Edis xs xs (Either Reply [ByteString]) Source #

hlen :: (KnownSymbol k, HashOrNX xs k) => Proxy k -> Edis xs xs (Either Reply Integer) Source #

hset :: (KnownSymbol k, KnownSymbol f, Serialize x, HashOrNX xs k) => Proxy k -> Proxy f -> x -> Edis xs (SetHash xs k f (StringOf x)) (Either Reply Bool) Source #

hsetnx :: (KnownSymbol k, KnownSymbol f, Serialize x, HashOrNX xs k) => Proxy k -> Proxy f -> x -> Edis xs (If (MemHash xs k f) xs (SetHash xs k f (StringOf x))) (Either Reply Bool) Source #

Sets

sadd :: (KnownSymbol s, Serialize x, SetOrNX xs s) => Proxy s -> x -> Edis xs (If (Member xs s) xs (Set xs s (SetOf x))) (Either Reply Integer) Source #

scard :: (KnownSymbol s, SetOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

sdiff :: (KnownSymbol s, KnownSymbol t, Serialize x, Just (SetOf x) ~ Get xs s, SetOrNX xs s) => Proxy s -> Proxy t -> Edis xs xs (Either Reply [x]) Source #

sdiffstore :: (KnownSymbol s, KnownSymbol t, SetOrNX xs s, SetOrNX xs t) => Proxy s -> Proxy t -> Edis xs xs (Either Reply Integer) Source #

sinter :: (KnownSymbol s, KnownSymbol t, Serialize x, Just (SetOf x) ~ Get xs s, SetOrNX xs s) => Proxy s -> Proxy t -> Edis xs xs (Either Reply [x]) Source #

sinterstore :: (KnownSymbol s, KnownSymbol t, SetOrNX xs s, SetOrNX xs t) => Proxy s -> Proxy t -> Edis xs xs (Either Reply Integer) Source #

smembers :: (KnownSymbol s, Serialize x, Just (SetOf x) ~ Get xs s) => Proxy s -> Edis xs xs (Either Reply [x]) Source #

smove :: (KnownSymbol s, KnownSymbol t, Serialize x, ((Not (Member xs s) && Not (IsSet (FromJust (Get xs t)))) || (SetOrNX' xs s && SetOrNX' xs t)) ~ True) => Proxy s -> Proxy t -> x -> Edis xs (Set xs t (SetOf x)) (Either Reply Bool) Source #

spop :: (KnownSymbol s, Serialize x, Just (SetOf x) ~ Get xs s) => Proxy s -> Edis xs xs (Either Reply (Maybe x)) Source #

srandmember :: (KnownSymbol s, Serialize x, Just (SetOf x) ~ Get xs s) => Proxy s -> Edis xs xs (Either Reply (Maybe x)) Source #

srem :: (KnownSymbol s, Serialize x, Just (SetOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply Integer) Source #

sunion :: (KnownSymbol s, KnownSymbol t, Serialize x, Just (SetOf x) ~ Get xs s, SetOrNX xs s) => Proxy s -> Proxy t -> Edis xs xs (Either Reply [x]) Source #

sunionstore :: (KnownSymbol s, KnownSymbol t, SetOrNX xs s, SetOrNX xs t) => Proxy s -> Proxy t -> Edis xs xs (Either Reply Integer) Source #

Sorted Sets

zadd :: (KnownSymbol s, Serialize x, ZSetOrNX xs s) => Proxy s -> Double -> x -> Edis xs (If (Member xs s) xs (Set xs s (ZSetOf x))) (Either Reply Integer) Source #

zcard :: (KnownSymbol s, SetOrNX xs s) => Proxy s -> Edis xs xs (Either Reply Integer) Source #

zcount :: (KnownSymbol s, SetOrNX xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply Integer) Source #

zincrby :: (KnownSymbol s, Serialize x, ZSetOrNX xs s) => Proxy s -> Integer -> x -> Edis xs (If (Member xs s) xs (Set xs s (ZSetOf x))) (Either Reply Double) Source #

zrange :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply [x]) Source #

zrangeWithscores :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrangebyscore :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply [x]) Source #

zrangebyscoreWithscores :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrangebyscoreLimit :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Integer -> Integer -> Edis xs xs (Either Reply [x]) Source #

zrangebyscoreWithscoresLimit :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Integer -> Integer -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrank :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply (Maybe Integer)) Source #

zremrangebyrank :: (KnownSymbol s, ZSetOrNX xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply Integer) Source #

zremrangebyscore :: (KnownSymbol s, ZSetOrNX xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply Integer) Source #

zrevrange :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply [x]) Source #

zrevrangeWithscores :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Integer -> Integer -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrevrangebyscore :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply [x]) Source #

zrevrangebyscoreWithscores :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrevrangebyscoreLimit :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Integer -> Integer -> Edis xs xs (Either Reply [x]) Source #

zrevrangebyscoreWithscoresLimit :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> Double -> Double -> Integer -> Integer -> Edis xs xs (Either Reply [(x, Double)]) Source #

zrevrank :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply (Maybe Integer)) Source #

zscore :: (KnownSymbol s, Serialize x, Just (ZSetOf x) ~ Get xs s) => Proxy s -> x -> Edis xs xs (Either Reply (Maybe Double)) Source #

Server

Connection

Scripting

Pub/Sub

pubSub :: PubSub -> (Message -> IO PubSub) -> Edis xs xs () Source #

subscribe #

Arguments

:: [ByteString]

channel

-> PubSub 

Listen for messages published to the given channels (http://redis.io/commands/subscribe).

unsubscribe #

Arguments

:: [ByteString]

channel

-> PubSub 

Stop listening for messages posted to the given channels (http://redis.io/commands/unsubscribe).

psubscribe #

Arguments

:: [ByteString]

pattern

-> PubSub 

Listen for messages published to channels matching the given patterns (http://redis.io/commands/psubscribe).

punsubscribe #

Arguments

:: [ByteString]

pattern

-> PubSub 

Stop listening for messages posted to channels matching the given patterns (http://redis.io/commands/punsubscribe).

Assertions on types

start :: Edis '[] '[] () Source #

declare :: (KnownSymbol s, Member xs s ~ False) => Proxy s -> Proxy x -> Edis xs (Set xs s x) () Source #

renounce :: (KnownSymbol s, Member xs s ~ True) => Proxy s -> Edis xs (Del xs s) () Source #

data Proxy k t :: forall k. k -> * #

A concrete, poly-kinded proxy type

Constructors

Proxy 

Instances

Monad (Proxy *) 

Methods

(>>=) :: Proxy * a -> (a -> Proxy * b) -> Proxy * b #

(>>) :: Proxy * a -> Proxy * b -> Proxy * b #

return :: a -> Proxy * a #

fail :: String -> Proxy * a #

Functor (Proxy *) 

Methods

fmap :: (a -> b) -> Proxy * a -> Proxy * b #

(<$) :: a -> Proxy * b -> Proxy * a #

Applicative (Proxy *) 

Methods

pure :: a -> Proxy * a #

(<*>) :: Proxy * (a -> b) -> Proxy * a -> Proxy * b #

(*>) :: Proxy * a -> Proxy * b -> Proxy * b #

(<*) :: Proxy * a -> Proxy * b -> Proxy * a #

Traversable (Proxy *) 

Methods

traverse :: Applicative f => (a -> f b) -> Proxy * a -> f (Proxy * b) #

sequenceA :: Applicative f => Proxy * (f a) -> f (Proxy * a) #

mapM :: Monad m => (a -> m b) -> Proxy * a -> m (Proxy * b) #

sequence :: Monad m => Proxy * (m a) -> m (Proxy * a) #

Generic1 (Proxy *) 

Associated Types

type Rep1 (Proxy * :: * -> *) :: * -> * #

Methods

from1 :: Proxy * a -> Rep1 (Proxy *) a #

to1 :: Rep1 (Proxy *) a -> Proxy * a #

Alternative (Proxy *) 

Methods

empty :: Proxy * a #

(<|>) :: Proxy * a -> Proxy * a -> Proxy * a #

some :: Proxy * a -> Proxy * [a] #

many :: Proxy * a -> Proxy * [a] #

MonadPlus (Proxy *) 

Methods

mzero :: Proxy * a #

mplus :: Proxy * a -> Proxy * a -> Proxy * a #

Bounded (Proxy k s) 

Methods

minBound :: Proxy k s #

maxBound :: Proxy k s #

Enum (Proxy k s) 

Methods

succ :: Proxy k s -> Proxy k s #

pred :: Proxy k s -> Proxy k s #

toEnum :: Int -> Proxy k s #

fromEnum :: Proxy k s -> Int #

enumFrom :: Proxy k s -> [Proxy k s] #

enumFromThen :: Proxy k s -> Proxy k s -> [Proxy k s] #

enumFromTo :: Proxy k s -> Proxy k s -> [Proxy k s] #

enumFromThenTo :: Proxy k s -> Proxy k s -> Proxy k s -> [Proxy k s] #

Eq (Proxy k s) 

Methods

(==) :: Proxy k s -> Proxy k s -> Bool #

(/=) :: Proxy k s -> Proxy k s -> Bool #

Ord (Proxy k s) 

Methods

compare :: Proxy k s -> Proxy k s -> Ordering #

(<) :: Proxy k s -> Proxy k s -> Bool #

(<=) :: Proxy k s -> Proxy k s -> Bool #

(>) :: Proxy k s -> Proxy k s -> Bool #

(>=) :: Proxy k s -> Proxy k s -> Bool #

max :: Proxy k s -> Proxy k s -> Proxy k s #

min :: Proxy k s -> Proxy k s -> Proxy k s #

Read (Proxy k s) 
Show (Proxy k s) 

Methods

showsPrec :: Int -> Proxy k s -> ShowS #

show :: Proxy k s -> String #

showList :: [Proxy k s] -> ShowS #

Ix (Proxy k s) 

Methods

range :: (Proxy k s, Proxy k s) -> [Proxy k s] #

index :: (Proxy k s, Proxy k s) -> Proxy k s -> Int #

unsafeIndex :: (Proxy k s, Proxy k s) -> Proxy k s -> Int

inRange :: (Proxy k s, Proxy k s) -> Proxy k s -> Bool #

rangeSize :: (Proxy k s, Proxy k s) -> Int #

unsafeRangeSize :: (Proxy k s, Proxy k s) -> Int

Generic (Proxy k t) 

Associated Types

type Rep (Proxy k t) :: * -> * #

Methods

from :: Proxy k t -> Rep (Proxy k t) x #

to :: Rep (Proxy k t) x -> Proxy k t #

Monoid (Proxy k s) 

Methods

mempty :: Proxy k s #

mappend :: Proxy k s -> Proxy k s -> Proxy k s #

mconcat :: [Proxy k s] -> Proxy k s #

type Rep1 (Proxy *) 
type Rep1 (Proxy *) = D1 (MetaData "Proxy" "Data.Proxy" "base" False) (C1 (MetaCons "Proxy" PrefixI False) U1)
type Rep (Proxy k t) 
type Rep (Proxy k t) = D1 (MetaData "Proxy" "Data.Proxy" "base" False) (C1 (MetaCons "Proxy" PrefixI False) U1)

newtype Edis p q a Source #

Constructors

Edis 

Fields

Instances

IMonad k (Edis k k) Source # 

Methods

unit :: a -> m p p a Source #

bind :: m p q a -> (a -> m q r b) -> m p r b Source #

class IMonad m where Source #

Minimal complete definition

unit, bind

Methods

unit :: a -> m p p a Source #

bind :: m p q a -> (a -> m q r b) -> m p r b Source #

Instances

IMonad k (Edis k k) Source # 

Methods

unit :: a -> m p p a Source #

bind :: m p q a -> (a -> m q r b) -> m p r b Source #

(>>>) :: IMonad m => m p q a -> m q r b -> m p r b infixl 1 Source #

runRedis :: Connection -> Redis a -> IO a #

Interact with a Redis datastore specified by the given Connection.

Each call of runRedis takes a network connection from the Connection pool and runs the given Redis action. Calls to runRedis may thus block while all connections from the pool are in use.

connect :: ConnectInfo -> IO Connection #

Constructs a Connection pool to a Redis server designated by the given ConnectInfo. The first connection is not actually established until the first call to the server.

defaultConnectInfo :: ConnectInfo #

Default information for connecting:

 connectHost           = "localhost"
 connectPort           = PortNumber 6379 -- Redis default port
 connectAuth           = Nothing         -- No password
 connectDatabase       = 0               -- SELECT database 0
 connectMaxConnections = 50              -- Up to 50 connections
 connectMaxIdleTime    = 30              -- Keep open for 30 seconds