io.chrisdavenport.rediculous

Type members

Classlikes

final case
class Redis[F[_], A](unRedis: Kleisli[F, RedisConnection[F], A])
Companion
object
object Redis
Companion
class
trait RedisArg[A]
Companion
object
object RedisArg
Companion
class
trait RedisConnection[F[_]]
Companion
object
Companion
class
@implicitNotFound("Cannot find implicit value for RedisCtx[${F}]. \nIf you are trying to build a ({ type M[A] = Redis[F, A] })#M, make sure a Concurrent[F] is in scope,\nother instances are also present such as RedisTransaction.\nIf you are leveraging a custom context not provided by rediculous,\nplease consult your library documentation.\n")
trait RedisCtx[F[_]]

RedisCtx is the Context in Which RedisOperations operate.

RedisCtx is the Context in Which RedisOperations operate.

Companion
object
object RedisCtx
Companion
class
trait RedisError extends RuntimeException

Indicates a Error while processing for Rediculous

Indicates a Error while processing for Rediculous

Companion
object
object RedisError
Companion
class
final case
class RedisPipeline[A](value: RedisTxState[Queued[A]])

For When you don't trust automatic pipelining.

For When you don't trust automatic pipelining.

ClusterMode: Multi Key Operations Will use for the first key provided.

pipeline method converts the Pipeline state to the Redis Monad. This will error if you pipeline and have not actually enterred any redis commands.

Companion
object
Companion
class
trait RedisPubSub[F[_]]

A RedisPubSub Represent an connection or group of connections communicating to the pubsub subsystem of Redis.

A RedisPubSub Represent an connection or group of connections communicating to the pubsub subsystem of Redis.

Only one caller should be responsible for runMessages, but delegation of how to handle errors and what to do when the connection closes or what state it closes is left to the user so they can determine what to do.

Subscription commands are run synchronous to matching subscriptions. If your operations need to take a long time please delegate them into a queue for handling without holding up other messages being processed.

Companion
object
Companion
class
trait RedisResult[+A]
Companion
object
object RedisResult extends RedisResultLowPriority
Companion
class
trait RedisStream[F[_]]
Companion
object
Companion
class
final case
class RedisTransaction[A](value: RedisTxState[Queued[A]])

Transactions Operate via typeclasses. RedisCtx allows us to abstract our operations into different types depending on the behavior we want. In the case of transactions that is RedisTransaction. These can be composed together via its Applicative instance to form a transaction consisting of multiple commands, then transacted via either multiExec or transact on the class.

Transactions Operate via typeclasses. RedisCtx allows us to abstract our operations into different types depending on the behavior we want. In the case of transactions that is RedisTransaction. These can be composed together via its Applicative instance to form a transaction consisting of multiple commands, then transacted via either multiExec or transact on the class.

In Cluster Mode the first key operation defines the node the entire Transaction will be sent to. Transactions are required to only operate on operations containing keys in the same keyslot, and users are required to hold this imperative or else redis will reject the transaction.

Example
import io.chrisdavenport.rediculous._
import cats.effect.Concurrent
val tx = (
 RedisCommands.ping[RedisTransaction],
 RedisCommands.del[RedisTransaction](List("foo")),
 RedisCommands.get[RedisTransaction]("foo"),
 RedisCommands.set[RedisTransaction]("foo", "value"),
 RedisCommands.get[RedisTransaction]("foo")
).tupled
def operation[F[_]: Concurrent] = tx.transact[F]
Companion
object
Companion
class
sealed
trait Resp extends Product with Serializable
Companion
object
object Resp
Companion
class
object RespRaw
object implicits

Types

type RedisIO[A] = Redis[IO, A]