Sink到Redis
依赖
<!-- redis connector --> <dependency> <groupId>org.apache.bahir</groupId> <artifactId>flink-connector-redis_2.11</artifactId> <version>1.0</version> </dependency>
代码实现
object SinkRedis { private val REDIS_KEY = "person_message" def main(args: Array[String]): Unit = { val env: StreamExecutionEnvironment = StreamExecutionEnvironment.getExecutionEnvironment val personStreaming: DataStream[Person] = env.fromElements(Person("jim", 19, "male"), Person("lucy", 20, "womale"), Person("lily", 21, "womale")) val redisConf: FlinkJedisPoolConfig = new FlinkJedisPoolConfig.Builder() .setHost("localhost") .setPort(6379).setTimeout(30000).build() personStreaming.addSink(new RedisSink[Person](redisConf, new MyRedisMapper)) env.execute("sink redis") } case class Person(name: String, age: Int, gender: String) class MyRedisMapper extends RedisMapper[Person] { override def getCommandDescription: RedisCommandDescription = { new RedisCommandDescription(RedisCommand.HSET, REDIS_KEY) } override def getKeyFromData(t: Person): String = { t.name } override def getValueFromData(t: Person): String = { t.age + ":" + t.gender } } }
立志如山 静心求实
浙公网安备 33010602011771号