freckle-app-1.8.0.0: Haskell application toolkit used at Freckle
Safe HaskellSafe-Inferred
LanguageHaskell2010

Freckle.App.Memcached

Contents

Description

App-level caching backed by Memcached

Usage:

  1. Have a Reader-like monad stack over some App
  2. Set up that App with HasMemcachedClient
  3. Give the value to cache a Cachable instance
  4. Use caching

To avoid Cachable, see cachingAs and cachingAsJSON.

Synopsis

Documentation

caching :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasMemcachedClient env, Cachable a) => CacheKey -> CacheTTL -> m a -> m a Source #

Memoize an action using Memcached and Cachable

cachingAs :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasMemcachedClient env) => (ByteString -> Either String a) -> (a -> ByteString) -> CacheKey -> CacheTTL -> m a -> m a Source #

Like caching, but with explicit conversion functions

cachingAsJSON :: (MonadUnliftIO m, MonadLogger m, MonadReader env m, HasMemcachedClient env, FromJSON a, ToJSON a) => CacheKey -> CacheTTL -> m a -> m a Source #

Like caching, but de/serializing the value as JSON

Re-exports