final case class RedisTransaction[A](value: RedisTxState[Queued[A]]) extends Product with Serializable
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.
- Source
- RedisTransaction.scala
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]
Example:
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- RedisTransaction
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- new RedisTransaction(value: RedisTxState[Queued[A]])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def transact[F[_]](implicit arg0: Concurrent[F]): Redis[F, TxResult[A]]
- val value: RedisTxState[Queued[A]]
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()