RedisRef

io.chrisdavenport.rediculous.concurrent.RedisRef
object RedisRef

Attributes

Source
RedisRef.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
RedisRef.type

Members list

Type members

Classlikes

class LockedRedisRef[F[_]](redisConnection: RedisConnection[F], key: String, acquireTimeout: FiniteDuration, lockTimeout: FiniteDuration, setOpts: SetOpts)(implicit evidence$1: Async[F]) extends Ref[F, Option[String]]

Attributes

Source
RedisRef.scala
Supertypes
class Ref[F, Option[String]]
trait RefSink[F, Option[String]]
trait RefSource[F, Option[String]]
trait Serializable
class Object
trait Matchable
class Any
Show all
class RedisRef[F[_]](redisConnection: RedisConnection[F], key: String)(implicit evidence$1: Async[F]) extends Ref[F, String]

Attributes

Source
RedisRef.scala
Supertypes
class Ref[F, String]
trait RefSink[F, String]
trait RefSource[F, String]
trait Serializable
class Object
trait Matchable
class Any
Show all

Value members

Concrete methods

def atLocation[F[_] : Async](redisConnection: RedisConnection[F], key: String, setIfAbsent: String): F[Ref[F, String]]

This uses the simple WATCH approach which means there is higher contention on the resource which under heavy concurrency situations a lot of retries.

This uses the simple WATCH approach which means there is higher contention on the resource which under heavy concurrency situations a lot of retries. However if there is very little concurrency will behave smoother

Attributes

Source
RedisRef.scala
def jsonRef[F[_] : Sync, A : Encoder](ref: Ref[F, String]): Ref[F, A]

Attributes

Source
RedisRef.scala
def liftedDefaultStorage[F[_] : Sync, A : Eq](ref: Ref[F, Option[A]], default: A): Ref[F, A]

Attributes

Source
RedisRef.scala
def liftedSimple[F[_] : Sync, A](ref: Ref[F, Option[A]], default: A): Ref[F, A]

Attributes

Source
RedisRef.scala
def lockedLocation[F[_] : Async](redisConnection: RedisConnection[F], key: String, default: String, acquireTimeout: FiniteDuration, lockTimeout: FiniteDuration, setOpts: SetOpts): F[Ref[F, String]]

This uses a seperate lock specifically for each keyed resource.

This uses a seperate lock specifically for each keyed resource. Guarding access to any behavior involving writes requires first aquiring the lock.

Attributes

Source
RedisRef.scala
def lockedOptionRef[F[_] : Async](redisConnection: RedisConnection[F], key: String, acquireTimeout: FiniteDuration, lockTimeout: FiniteDuration, setOpts: SetOpts): Ref[F, Option[String]]

Attributes

Source
RedisRef.scala
def optionJsonRef[F[_] : Sync, A : Encoder](ref: Ref[F, Option[String]]): Ref[F, Option[A]]

Attributes

Source
RedisRef.scala