内容简介:编辑 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.HASH
和 RedisDataType.SORTED_SET
,需要提供额外的键信息。
SET 命令,对应数据类型 STRING:
new RedisCommandDescription(RedisCommand.SET)
HSET 命令,对应数据类型 HASH,需要额外键:
new RedisCommandDescription(RedisCommand.HSET, key)
② 返回键。如果数据类型为 RedisDataType.HASH
和 RedisDataType.SORTED_SET
,这里返回的键值是数据类型的键值。
③ 返回值。
Redis Sink
有了配置信息和 Redis Mapper,就可以创建 Redis Sink 写入数据到 Redis 了:
stream.addSink(new RedisSink<>(
config,
mapper
));
参考
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏运营:高手进阶之路
饭大官人 / 电子工业出版社 / 2018-1-1 / 79.00元
《游戏运营:高手进阶之路》是一本系统的、成体系的、注重运营效能、强化系统思维、提升专业认知的书籍。《游戏运营:高手进阶之路》几乎完整覆盖了一个游戏运营人员日常工作中的方方面面,并从工作中具体的业务场景出发,归纳整理出各种解决问题的方法论。《游戏运营:高手进阶之路》为广大游戏从业者建立了完整的知识技能成长体系,包含两大岗位基本功—内容输出和协作推进,四大职业技能—活动策划、版本管理、用户运营、数据分......一起来看看 《游戏运营:高手进阶之路》 这本书的介绍吧!