Connectors / Databases

Redis

sink

Redis (streams, lists, key-value) sink

Install

cargo install faucet-cli --features sink-redis
faucet init --sink redis
# Cargo.toml — use it as a library
cargo add faucet-sink-redis

Starter config

sink:
  type: redis
  config:
    url: ""    # REQUIRED — Redis connection URL (e.g.
    sink_type:
      type: List    # one of: List, Stream, KeyValue
      key: ""    # REQUIRED — The list key.
      # --- Alternative variants — replace the block above with one of these ---
      # type: Stream
      # key: ""    # REQUIRED
      #
      # type: KeyValue
      # key_field: ""    # REQUIRED
    # tls: { ... }    # Server verification and client-certificate settings for a connector that dials a TLS server itself (Redis, NATS, Elasticsearch).
    # batch_size: 1000    # Maximum number of commands packed into a single Redis pipeline.
    # ttl_secs: 0    # `KeyValue` only: expire every written key after this many seconds (`SET … EX`).
    # stream_max_len: 0    # `Stream` only: cap the stream at about this many entries (`XADD … MAXLEN ~ n`), trimming the oldest.

Capabilities

Delivery Exactly-once (atomic watermark)
Write modes append
Exactly-once writes Yes
Schema evolution No
Scoped cleanup No
Staged bulk load No
Run rollback No
Compression No

Config fields

FieldTypeDefaultDescription
url
required
string — Redis connection URL (e.g. "redis://127.0.0.1:6379").
sink_type
required
object — The type of Redis data structure to write to.
tls object — TLS settings for a rediss:// URL: a private CA, a client certificate for mutual TLS, or insecure_skip_verify.
batch_size integer 1000 Maximum number of commands packed into a single Redis pipeline. Defaults to DEFAULT_BATCH_SIZE (1000), which is a comfortable per-pipeline working set for Redis: pipelined commands are cheap, so bigger windows amortise the round-trip but very large pipelines can stall other clients sharing the server.
ttl_secs integer — KeyValue only: expire every written key after this many seconds (SET … EX). Keys never expire when unset.
stream_max_len integer — Stream only: cap the stream at about this many entries (XADD … MAXLEN ~ n), trimming the oldest. Unbounded when unset.
Get started

Your first pipeline runs in five minutes.

Install the CLI, scaffold a config, and move real data — nothing external to stand up.

curl -LsSf https://github.com/faucet-hq/faucet-stream/releases/latest/download/faucet-cli-installer.sh | sh
brew install faucet-hq/faucet-stream/faucet-cli