Skip to content

Commit

Permalink
Merge pull request #879 from yisraelU/flush-commands
Browse files Browse the repository at this point in the history
add flushDb command and flushmode to flushAll
  • Loading branch information
yisraelU authored May 30, 2024
2 parents 7dacf21 + e4cc09c commit e1354e5
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,18 @@

package dev.profunktor.redis4cats.algebra

import dev.profunktor.redis4cats.effects.FlushMode

import java.time.Instant

trait ServerCommands[F[_], K] extends Flush[F, K] with Diagnostic[F]

trait Flush[F[_], K] {
def keys(key: K): F[List[K]]
def flushAll: F[Unit]
def flushAll(mode: FlushMode): F[Unit]
def flushDb: F[Unit]
def flushDb(mode: FlushMode): F[Unit]
}

trait Diagnostic[F[_]] {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,14 @@ object effects {
def apply(`match`: String, count: Long): ScanArgs = ScanArgs(Some(`match`), Some(count))
}

sealed trait FlushMode
sealed trait FlushMode {
def asJava: io.lettuce.core.FlushMode =
this match {
case FlushMode.Sync => io.lettuce.core.FlushMode.SYNC
case FlushMode.Async => io.lettuce.core.FlushMode.ASYNC
}

}
object FlushMode {
case object Sync extends FlushMode
case object Async extends FlushMode
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1265,6 +1265,15 @@ private[redis4cats] class BaseRedis[F[_]: FutureLift: MonadThrow: Log, K, V](
override val flushAll: F[Unit] =
async.flatMap(_.flushall().futureLift.void)

override def flushAll(mode: FlushMode): F[Unit] =
async.flatMap(_.flushall(mode.asJava).futureLift.void)

override val flushDb: F[Unit] =
async.flatMap(_.flushdb().futureLift.void)

override def flushDb(mode: FlushMode): F[Unit] =
async.flatMap(_.flushdb(mode.asJava).futureLift.void)

override def keys(key: K): F[List[K]] =
async.flatMap(_.keys(key).futureLift.map(_.asScala.toList))

Expand Down

0 comments on commit e1354e5

Please sign in to comment.