Lists API
Purely functional interface for the Lists API.
List Commands usage
Once you have acquired a connection you can start using it:
import cats.effect.IO
val testKey = "listos"
def putStrLn(str: String): IO[Unit] = IO(println(str))
commandsApi.use { redis => // ListCommands[IO, String, String]
  for {
    _ <- redis.rPush(testKey, "one", "two", "three")
    x <- redis.lRange(testKey, 0, 10)
    _ <- putStrLn(s"Range: $x")
    y <- redis.lLen(testKey)
    _ <- putStrLn(s"Length: $y")
    a <- redis.lPop(testKey)
    _ <- putStrLn(s"Left Pop: $a")
    b <- redis.rPop(testKey)
    _ <- putStrLn(s"Right Pop: $b")
    z <- redis.lRange(testKey, 0, 10)
    _ <- putStrLn(s"Range: $z")
  } yield ()
}