Write-behind to Redis Enterprise target example

The redis.write block can be used in the output section of the write-behind job in order to enable writing data to the Redis Enterprise target database. Multiple blocks can be used at the same time to write data to different data types. The following example captures data modified in the address:* keyspace, then creates a new JSON-like string field named json_addr, and, finally, writes the results to multiple keys in target Redis Enteprise database:

source:
  redis:
    trigger: write-behind
    key_pattern: address:*
transform:
  - uses: add_field
    with:
      fields:
        - field: "json_addr"
          expression: concat(['{"city":', city, ', "zip":', zip, '}'])
          language: jmespath
output:
  - uses: redis.write
    with:
      data_type: hash
      connection: target
      key:
        expression: concat(['addr:org_id:', org_id, ':hash'])
        language: jmespath
  - uses: redis.write
    with:
      data_type: json
      key:
        expression: concat(['addr:org_id:', org_id, ':json'])
        language: jmespath
      on_update: merge
  - uses: redis.write
    with:
      data_type: set
      key:
        expression: concat(['addresses:', country])
        language: jmespath
      args:
        member: json_addr
  - uses: redis.write
    with:
      data_type: sorted_set
      key:
        expression: concat(['addrs_withscores:', country])
        language: jmespath
      args:
        score: zip
        member: json_addr
  - uses: redis.write
    with:
      data_type: stream
      key:
        expression: "`addresses:events`"
        language: jmespath
      mapping:
        - org_id: message_id
        - zip: zip_code
        - country

Run the following command in the source Redis Enterprise database to test the job:

127.0.0.1:12005> hset address:1 city Austin zip 78901 org_id 1 country USA

The result is five keys will be created in the target Redis Enterprise database (hash, JSON, set, sorted set, and stream):

127.0.0.1:12000> keys *
1) "addr:org_id:1:hash"
2) "addr:org_id:1:json"
3) "addresses:USA"
4) "addrs_withscores:USA"
5) "addresses:events"
RATE THIS PAGE
Back to top ↑