| Safe Haskell | Safe-Infered |
|---|
Network.Wai.Middleware.Cache.Redis
Contents
Description
Redis backend for Network.Wai.Middleware.Cache.
This backend uses Database.Redis.Pile for low-lewel operations.
cache
(redisBackend
-- use defaults, DB 0 and "myprefix"
R.defaultConnectInfo 0 "myprefix"
(const Nothing) -- no expiration
(const ["mytag"]) -- simply one tag "mytag"
(rawPathInfo) -- URL path as key
lookupETag -- And find "If-None-Match"
) app -- our app
- redisBackend :: ConnectInfo -> Integer -> ByteString -> (Request -> Maybe Integer) -> (Request -> [ByteString]) -> (Request -> ByteString) -> (Request -> Maybe ByteString) -> CacheBackend
- lookupETag :: Request -> Maybe ByteString
Cache backend
Arguments
| :: ConnectInfo | Redis connection info. |
| -> Integer | Redis DB. |
| -> ByteString | Cache prefix for key and tags. See Database.Redis.Pile for details. |
| -> (Request -> Maybe Integer) | TTL extraction. Use |
| -> (Request -> [ByteString]) | Tags extraction. See Database.Redis.Pile for details. |
| -> (Request -> ByteString) | Key extraction. |
| -> (Request -> Maybe ByteString) |
|
| -> CacheBackend |
Redis backend for Network.Wai.Middleware.Cache.
Except caching, this backend always adds ETag to Response headers
with hexed SHA1 as value.
Helpers
lookupETag :: Request -> Maybe ByteStringSource
Helper for extract If-None-Match header from Request.