|
22 | 22 | redis5.0 |
23 | 23 |
|
24 | 24 | ## 3.表结构定义 |
| 25 | +注意:redis中没有表和schema的概念,参数中tableName是指符合命名规则的key,具体规则请看[缓存redis的存储命名规则] |
25 | 26 |
|
26 | 27 | |参数名称|含义| |
27 | 28 | |----|---| |
28 | | -| tableName | 注册到flink的表名称(可选填;不填默认和redis对应的表名称相同)| |
29 | | -| colName | 列名称,维表列名格式 表名:主键名:主键值:列名]| |
| 29 | +| tableName | 注册到flinkStreamSql的表名称(可选填;不填默认和redis对应的"表"名称相同)| |
| 30 | +| colName | 列名称,对应redis对应"表"的field| |
30 | 31 | | colType | 列类型,当前只支持varchar| |
31 | | -| PRIMARY KEY |主键,多个字段做为联合主键时以逗号分隔 |
32 | | -| PERIOD FOR SYSTEM_TIME | 关键字表明该定义的表为维表信息| |
| 32 | +| PRIMARY KEY |主键,多个字段做为联合主键时以逗号分隔| |
| 33 | +| PERIOD FOR SYSTEM_TIME | 关键字,表明该定义的表为维表信息| |
33 | 34 |
|
34 | 35 | ## 4.参数 |
35 | 36 |
|
| 37 | +参数详细说明请看[参数详细说明]() |
| 38 | + |
36 | 39 | |参数名称|含义|是否必填|默认值| |
37 | 40 | |----|---|---|----| |
38 | 41 | | type | 表明维表的类型[hbase|mysql|redis]|是|| |
39 | 42 | | url | redis 的地址;格式ip:port[,ip:port]|是|| |
40 | | -| password | redis 的密码 |是|| |
| 43 | +| password | redis 的密码 |否|空| |
41 | 44 | | redisType | redis模式(1 单机,2 哨兵, 3 集群)| 是 | |
42 | 45 | | masterName | 主节点名称(哨兵模式下为必填项) | 否 | |
43 | | -| database | reids 的数据库地址|否|| |
44 | | -| tableName | redis 的表名称|是|| |
| 46 | +| database | reids 的数据库地址|否|0| |
| 47 | +| tableName | redis 的“表”名称|是|| |
45 | 48 | | cache | 维表缓存策略(NONE/LRU/ALL)|否|NONE| |
46 | 49 | | partitionedJoin | 是否在維表join之前先根据 設定的key 做一次keyby操作(可以減少维表的数据缓存量)|否|false| |
47 | | - |
48 | 50 | -------------- |
49 | 51 | > 缓存策略 |
50 | 52 | * NONE: 不做内存缓存 |
|
55 | 57 |
|
56 | 58 | ## 5.样例 |
57 | 59 | ``` |
58 | | -create table sideTable( |
59 | | - channel varchar, |
60 | | - xccount varchar, |
61 | | - PRIMARY KEY(channel), |
| 60 | +CREATE TABLE MyRedis( |
| 61 | + id varchar, |
| 62 | + message varchar, |
| 63 | + PRIMARY KEY(id), |
62 | 64 | PERIOD FOR SYSTEM_TIME |
63 | | - )WITH( |
| 65 | +)WITH( |
64 | 66 | type='redis', |
65 | 67 | url='172.16.10.79:6379', |
66 | 68 | password='abc123', |
67 | 69 | database='0', |
68 | 70 | redisType = '1', |
69 | | - tableName='sidetest', |
| 71 | + tableName = 'sideTable', |
70 | 72 | cache = 'LRU', |
71 | 73 | cacheTTLMs='10000' |
72 | | - ); |
| 74 | +); |
73 | 75 |
|
74 | 76 | ``` |
75 | | -## 6.缓存redis的存储结构规则 |
76 | | -``` |
| 77 | +## 6.redis的存储命名规则 |
| 78 | + |
77 | 79 | redis使用散列类型 hash 数据结构,key=tableName_primaryKey1_primaryKey2,value={column1=value1, column2=value2} |
78 | 80 | 如果以班级class表为例,id和name作为联合主键,那么redis的结构为 <class_1_john ,{id=1, name=john, age=12}> |
| 81 | + |
| 82 | +在样例中,tableName为sideTable,主键为id,column为id,message,所以对应的redis数据插入语句为<hset sideTable_5 id 5 message redis> |
| 83 | + |
| 84 | +数据在redis中对应的数据存储情况为: |
| 85 | +``` |
| 86 | +192.168.80.105:6379> hgetall sideTable_5 |
| 87 | +1) "id" |
| 88 | +2) "5" |
| 89 | +3) "message" |
| 90 | +4) "redis" |
79 | 91 | ``` |
80 | 92 |
|
81 | 93 |
|
0 commit comments