学习 Flink(十五):Redis Connector

栏目: 数据库 · 发布时间: 6年前

内容简介:编辑 pom.xml 文件,添加依赖:Redis Sink 支持多种 Redis 环境:

更新至 Flink 1.8 版本

Apache Bahir 项目提供了基于 Flink DataStream API 的 Redis Connector,其内部使用了 Java Redis 客户端 jedis 实现了 Redis Sink。

依赖

编辑 pom.xml 文件,添加依赖:

<dependency>  
  <groupId>org.apache.bahir</groupId>
  <artifactId>flink-connector-redis_2.11</artifactId>
  <version>1.1-SNAPSHOT</version>
</dependency>

配置

Redis Sink 支持多种 Redis 环境:

  • 单节点
  • 集群
  • 哨兵

以单节点连接池配置为例:

FlinkJedisPoolConfig config = new FlinkJedisPoolConfig.Builder()  
        .setHost(ip)
        .setPassword(password)
        .setMaxTotal(maxTotal)
        .setMaxIdle(maxIdle)
        .setMinIdle(minIdle)
        build()

Redis Mapper

Redis Mapper 用于将输入数据映射为 Redis 操作,需要实现 RedisMapper<T> 接口。

RedisMapper 接口定义:

public interface RedisMapper<T> extends Function, Serializable {

    RedisCommandDescription getCommandDescription(); // ①

    String getKeyFromData(T data); // ②

    String getValueFromData(T data); // ③
}

① Redis 命令描述。当前支持的 Redis 命令和数据类型对应,如下表所示:

Redis 命令 Redis 数据类型
HSET HASH
RPUSH,LPUSH LIST
SADD SET
PUBLISH PUBSUB
SET STRING
PFADD HYPER LOG LOG
ZADD SORTED SET
ZREM SORTED SET

所有的 Redis 命令定义在 RedisCommand 枚举类型中,所有的 Redis 数据类型定义在 RedisDataType 枚举类型中。

注意:数据类型为 RedisDataType.HASHRedisDataType.SORTED_SET ,需要提供额外的键信息。

SET 命令,对应数据类型 STRING:

new RedisCommandDescription(RedisCommand.SET)

HSET 命令,对应数据类型 HASH,需要额外键:

new RedisCommandDescription(RedisCommand.HSET, key)

② 返回键。如果数据类型为 RedisDataType.HASHRedisDataType.SORTED_SET ,这里返回的键值是数据类型的键值。

③ 返回值。

Redis Sink

有了配置信息和 Redis Mapper,就可以创建 Redis Sink 写入数据到 Redis 了:

stream.addSink(new RedisSink<>(  
    config,
    mapper
));

参考


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

通灵芯片

通灵芯片

Daniel Hillis / 崔良沂 / 上海世纪出版集团 / 2009-1 / 19.80元

本书深入浅出地阐述了计算机科学中许多基本而重要的概念,包括布尔逻辑、有限自动机、编程语言、图灵机的普遍性、信息论、算法、并行计算、量子计算、神经网络、机器学习乃至自组织系统。 作者高屋建瓴式的概括,既不失深度,又妙趣横生,相信读者读后会有很多启发。 目录: 序言:石的奇迹 第一章 通用件 第二章 万能积木 第三章 程序设计 第四章 图灵机的普适性 第......一起来看看 《通灵芯片》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具