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.
This backend can't cache files. Use routing or catch CacheBackendError
Helpers
lookupETag :: Request -> Maybe ByteStringSource
Helper for extract If-None-Match
header from Request
.