RedisCacheBase

trait RedisCacheBase[F[_], V] extends AbstractCache[F, V]

Contains implementations of all methods that can be implemented independent of the type of Redis client. This is everything apart from removeAll, which needs to be implemented differently for sharded Redis.

trait AbstractCache[F, V]
trait LoggingSupport[F]
trait Cache[F, V]
trait CacheAlg[F, V]
class Object
trait Matchable
class Any
class RedisCache[F, V]
class SentinelRedisCache[F, V]
class ShardedRedisCache[F, V]

Type members

Types

protected type JClient <: BinaryJedisCommands & Closeable

Value members

Abstract methods

protected def codec: Codec[V]
def config: CacheConfig
protected def jedisPool: Pool[JClient]

Concrete methods

protected def doGet(key: String): F[Option[V]]
protected def doPut(key: String, value: V, ttl: Option[Duration]): F[Unit]
protected def doRemove(key: String): F[Unit]
final protected def withJedis[T](f: JClient => F[T]): F[T]

Borrow a Jedis client from the pool, perform some operation and then return the client to the pool.

Borrow a Jedis client from the pool, perform some operation and then return the client to the pool.

Type Params
T

return type of the block

Value Params
f

block that uses the Jedis client.

Returns

the result of executing the block

Inherited methods

final override def caching(keyParts: Any*)(ttl: Option[Duration])(f: => V)(implicit flags: Flags): F[V]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache
override def cachingF(keyParts: Any*)(ttl: Option[Duration])(f: F[V])(implicit flags: Flags): F[V]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache
override def cachingForMemoize(baseKey: String)(ttl: Option[Duration])(f: => V)(implicit flags: Flags): F[V]
Definition Classes
AbstractCache -> Cache
Inherited from
AbstractCache
override def cachingForMemoizeF(baseKey: String)(ttl: Option[Duration])(f: F[V])(implicit flags: Flags): F[V]
Definition Classes
AbstractCache -> Cache
Inherited from
AbstractCache
protected def doRemoveAll: F[Unit]
Inherited from
AbstractCache
final override def get(keyParts: Any*)(implicit flags: Flags): F[Option[V]]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache
protected def logCacheHitOrMiss[A](key: String, result: Option[A]): F[Unit]

Output a debug log to record the result of a cache lookup

Output a debug log to record the result of a cache lookup

Type Params
A

the type of the cache value

Value Params
key

the key that was looked up

result

the result of the cache lookup

Inherited from
LoggingSupport
protected def logCachePut(key: String, ttl: Option[Duration]): F[Unit]

Output a debug log to record a cache insertion/update

Output a debug log to record a cache insertion/update

Value Params
key

the key that was inserted/updated

ttl

the TTL of the inserted entry

Inherited from
LoggingSupport
final override def put(keyParts: Any*)(value: V, ttl: Option[Duration])(implicit flags: Flags): F[Unit]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache
final override def remove(keyParts: Any*): F[Unit]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache
final override def removeAll: F[Unit]
Definition Classes
AbstractCache -> CacheAlg
Inherited from
AbstractCache

Concrete fields

val close: F[Unit]
final override protected val logger: Logger[F]

Implicits

Inherited implicits

implicit protected def F: Sync[F]
Inherited from
AbstractCache