serversession-backend-redis-1.0: Storage backend for serversession using Redis.

Safe HaskellNone
LanguageHaskell98

Web.ServerSession.Backend.Redis

Description

Storage backend for serversession using Redis via hedis.

Synopsis

Documentation

newtype RedisStorage sess Source

Session storage backend using Redis via the hedis package.

Constructors

RedisStorage 

Fields

connPool :: Connection

Connection pool to the Redis server.

Instances

RedisSession sess => Storage (RedisStorage sess)

We do not provide any ACID guarantees for different actions running inside the same TransactionM RedisStorage.

Typeable (* -> *) RedisStorage 
type TransactionM (RedisStorage sess) = Redis 
type SessionData (RedisStorage sess) = sess 

data RedisStorageException Source

An exception thrown by the serversession-backend-redis package.

Constructors

ExpectedTxSuccess (TxResult ())

We expected TxSuccess but got something else.

ExpectedRight Reply

We expected Right from an Either Reply a but got Left.

class IsSessionData sess => RedisSession sess where Source

Class for data types that can be used as session data for the Redis backend.

It should hold that

fromHash p . perm . toHash p  ===  id

for all list permutations perm :: [a] -> [a], where p :: Proxy sess.

Methods

toHash :: Proxy sess -> Decomposed sess -> [(ByteString, ByteString)] Source

Transform a decomposed session into a Redis hash. Keys will be prepended with "data:" before being stored.

fromHash :: Proxy sess -> [(ByteString, ByteString)] -> Decomposed sess Source

Parse back a Redis hash into session data.

Instances

RedisSession SessionMap

Assumes that keys are UTF-8 encoded when parsing (which is true if keys are always generated via toHash).