Write to a Redis sorted set

In the example below, data is captured from the source table named invoice and is written to a Redis sorted set. The connection is an optional parameter that refers to the corresponding connection name defined in config.yaml. When you specify the data_type parameter for the job, it overrides the system-wide setting target_data_type defined in config.yaml.

Note:
The sorted_set data type is supported by the classic processor only. The Flink processor currently supports only hash and json outputs.

When writing to sorted sets, you must provide two additional arguments, member and score. These specify the field names that will be used as a member and a score to add an element to a sorted set. In this case, the result will be a Redis sorted set named invoices:sorted based on the key expression and with an expiration of 100 seconds for each set member. If you don't supply an expire parameter, the keys will never expire.

name: Write invoices to sorted set by total
source:
  schema: public
  table: invoice
output:
  - uses: redis.write
    with:
      connection: target
      data_type: sorted_set
      key:
        expression: "`invoices:sorted`"
        language: jmespath
      args:
        score: Total
        member: InvoiceId
      expire: 100

Since sorted sets in Redis are inherently sorted, you can easily get the top N invoices by total invoice amount using the command below (the range 0..9 gets the top 10 invoices):

ZREVRANGE invoices:sorted 0 9 WITHSCORES
RATE THIS PAGE
Back to top ↑