scala
import com.redis._
object CacheExample {
val redisClient = new RedisClient("localhost", 6379)
def getDataFromCache(key: String): Option[String] = {
redisClient.get(key)
}
def storeDataInCache(key: String, value: String): Boolean = {
redisClient.set(key, value)
}
def main(args: Array[String]): Unit = {
val data = getDataFromCache("user:1")
data match {
case Some(value) => println(s"Data found in cache: $value")
case None =>
storeDataInCache("user:1", "John Doe")
println("Data stored in cache.")
}
}
}
scala
import com.redis._
object PubSubExample {
val redisClient = new RedisClient("localhost", 6379)
def subscribeToChannel(channel: String): Unit = {
val listener = new MessageListener {
def onMessage(channel: String, message: Array[Byte]) {
val receivedMessage = new String(message)
println(s"Received message from channel $channel: $receivedMessage")
}
}
redisClient.subscribe(listener, channel)
}
def publishToChannel(channel: String, message: String): Unit = {
redisClient.publish(channel, message)
}
def main(args: Array[String]): Unit = {
subscribeToChannel("notifications")
// Simulating a separate process publishing a message
Thread.sleep(1000)
publishToChannel("notifications", "New message!")
}
}