相關配置如下:
```
rule:
-
schema: eseap #數據庫名稱
table: t_user #表名稱
#order_by_column: id #排序字段,存量數據同步時不能為空
#column_lower_case:false #列名稱轉為小寫,默認為false
#column_upper_case:false#列名稱轉為大寫,默認為false
column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
# 包含的列,多值逗號分隔,如:id,name,age,area_id 為空時表示包含全部列
#include_columns: ID,USER_NAME,PASSWORD
#exclude_columns: BIRTHDAY,MOBIE # 排除掉的列,多值逗號分隔,如:id,name,age,area_id 默認為空
#column_mappings: CARD_NO=sfz #列名稱映射,多個映射關系用逗號分隔,如:USER_NAME=account 表示將字段名USER_NAME映射為account
#default_column_values: source=binlog,area_name=合肥 #默認的列-值,多個用逗號分隔,如:source=binlog,area_name=合肥
#date_formatter: yyyy-MM-dd #date類型格式化, 不填寫默認yyyy-MM-dd
#datetime_formatter: yyyy-MM-dd HH:mm:ss #datetime、timestamp類型格式化,不填寫默認yyyy-MM-dd HH:mm:ss
#lua_file_path: lua/t_user.lua #lua腳本文件,詳見使用手冊,當此值不為空時后面的配置除redis_structure其余均無效
#lua_script: #lua 腳本,詳見使用手冊,當此值不為空時后面的配置均無效
value_encoder: json #值編碼,支持json、kv-commas、v-commas;默認為json
#value_formatter: '{{.ID}}|{{.USER_NAME}}|{{.REAL_NAME}}|{{if eq .STATUS 0}}停用{{else}}啟用{{end}}'
#redis相關
redis_structure: string # 數據類型。 支持string、hash、list、set、sortedset類型(與redis的數據類型一致)
redis_key_prefix: USER_ #key的前綴
redis_key_column: USER_NAME #使用哪個列的值作為key,不填寫默認使用主鍵
#redis_key_formatter: '{{.ID}}|{{.USER_NAME}}'
#redis_key_value: user #KEY的值(固定值);當redis_structure為hash、list、set、sortedset此值不能為空
#redis_hash_field_prefix: _CARD_ #hash的field前綴,僅redis_structure為hash時起作用
#redis_hash_field_column: Cert_No #使用哪個列的值作為hash的field,僅redis_structure為hash時起作用,不填寫默認使用主鍵
```
其中,
value_encoder表示值編碼格式,支持json、kv-commas、v-commas三種格式,不填寫默認為json,具體如下表:
<table>
<tr>
<th width="15%">格式</th>
<th width="20%">說明</th>
<th>舉例</th>
</tr>
<td>json</td>
<td>json</td>
<td>{"id": "1001","userName": "admin","password": "123456",
"createTime": "2020-07-20 14:29:19"}</td>
</tr>
<tr>
<td>kv-commas</td>
<td>key-value逗號分隔</td>
<td>id=1001,userName=admin,password=123456,createTime=2020-07-20 14:29:19</td>
</tr>
<tr>
<td>v-commas</td>
<td>value逗號分隔</td>
<td>1001,admin,123456,2020-07-20 14:29:19</td>
</tr>
</table>
value_formatter表示值的格式化表達式,具體模板語法參見"表達式模板"章節,當value_formatter不為空時value_encoder無效。
redis_key_formatter表示KEY的格式化表達式,具體模板語法參見"表達式模板"章節。
# **示例**
t_user表,數據如下:

## **同步為string類型**
配置如下:
```
schema: eseap #數據庫名稱
table: t_user #表名稱
column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
value_encoder: json #值編碼
redis_structure: string # 數據類型。 支持string、hash、list、set、sortedset類型(與redis的數據類型一致)
redis_key_prefix: USER_ #key的前綴
redis_key_column: USER_NAME #使用哪個列的值作為key,不填寫默認使用主鍵
```
同步到Redis的數據如下:

## **同步為hash類型**
配置如下:
```
column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
value_encoder: json #值編碼,支持json、kv-commas、v-commas
redis_structure: hash
redis_key_value: user_cache #key的值(固定值);當redis_structure為hash、list、set、sortedset此值不能為空
redis_hash_field_prefix: user_name_ #hash的field前綴,僅redis_structure為hash時起作用
redis_hash_field_column: user_name #使用哪個列的值作為hash的field,僅redis_structure為hash時起作用,不填寫默認使用主鍵
```
同步到Redis的數據如下:

使用規則能將一個table映射成為一個HASH,但如果需要將talbe中的每一行映射成一個HASH,可以使用Lua腳本實現,詳請參見后續的示例。
## **同步為list類型**
配置如下:
```
value_formatter: '{{.ID}}|{{.USER_NAME}}' # 值格式化表達式,如:{{.ID}}|{{.USER_NAME}},{{.ID}}表示ID字段的值、{{.USER_NAME}}表示USER_NAME字段的值
redis_structure: list
redis_key_value: user_list #key的值(固定值);當redis_structure為hash、list、set、sortedset此值不能為空
```
同步到Redis的數據如下:

## **同步為Set類型**
配置如下:
```
value_formatter: '{{.ID}}|{{.USER_NAME}}' # 值格式化表達式,如:{{.ID}}|{{.USER_NAME}},{{.ID}}表示ID字段的值、{{.USER_NAME}}表示USER_NAME字段的值
redis_structure: set
redis_key_value: user_set #key的值(固定值);當redis_structure為hash、list、set、sortedset此值不能為空
```
同步到Redis的數據如下:

## **同步為Sorted Set類型**
t_user表,數據如下:

配置如下:
```
value_formatter: '{{.ID}}|{{.USER_NAME}}' # 值格式化表達式,如:{{.ID}}|{{.USER_NAME}},{{.ID}}表示ID字段的值、{{.USER_NAME}}表示USER_NAME字段的值
redis_structure: sortedset
redis_key_value: users #key的值(固定值);當redis_structure為hash、list、set、sortedset此值不能為空
redis_sorted_set_score_column: CREATE_TIME #sortedset的score,當數據類型為sortedset時,此項不能為空,此項的值應為數字類型
```
同步到Redis的數據如下:

- 簡介
- 部署運行
- 高可用集群
- 同步數據到Redis
- Redis配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到MongoDB
- MongoDB配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到RocketMQ
- RocketMQ配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到Kafka
- Kafka配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到RabbitMQ
- RabbitMQ配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到Elasticsearch
- Elasticsearch配置
- 基于規則同步
- 基于Lua腳本同步
- 全量數據導入
- Lua腳本
- 基礎模塊
- Json模塊
- HttpClient模塊
- DBClient模塊
- 監控
- 性能測試
- 常見問題
- 更新記錄開發計劃