package org.opendc.common.utils import com.fasterxml.jackson.dataformat.toml.TomlMapper import redis.clients.jedis.RedisClient import redis.clients.jedis.StreamEntryID import redis.clients.jedis.params.XReadParams import java.util.Properties /** * This class represents the Redis server instance. * @author Mateusz Kwiatkowski * @see https://redis.io/docs/latest/ * * @see https://redis.io/docs/latest/develop/data-types/streams/ */ @Suppress("DEPRECATION") public class Redis { private var properties : Properties init { properties = TomlMapper().readerFor(Properties().javaClass) .readValue(Kafka::class.java.getResource("/producer.toml")) } public fun run() { val jedis : RedisClient = RedisClient.create("redis://localhost:6379") val res5 = jedis.xread( XReadParams.xReadParams().block(300).count(100), object : HashMap() { init { put("${properties.getProperty("table")}", StreamEntryID()) } }) // in Redis you can subscribe to updates to a stream. // you should base your application off this. // you can listen for new items with XREAD println(res5) jedis.close() } }