Redis Streams
Redis Streams data ingestion is available using ingress of type redis.
Examples Repo
Example Redis Streams configuration files showcasing all features we will discuss can be found in our Examples Repo .
Settings
The Redis settings in the configuration file are used to configure data ingestion from Redis streams.
Below is a detailed description of each field within the Redis settings:
| Field | Required | Configurable | Description |
|---|---|---|---|
host |
false |
true |
Host name of the Redis instance to connect to. |
port |
false |
true |
Port number of the Redis instance to connect to. |
streams |
true |
true |
Streams field and starting ID, following the same format as the Redis CLI, e.g. vehicles 0. |
group |
false |
true |
The name of the consumer group. |
consumer |
false |
true |
The name of the consumer within the consumer group. |
block |
false |
true |
Time in ms to block for while waiting for new entries (default is to wait indefinitely). |
count |
false |
true |
The amount of entries to get with each read. |
user |
false |
true |
Redis user. |
password |
false |
true |
Redis password. |
database |
false |
true |
Redis database to connect to. |
clientName |
false |
true |
Client name to use for connection. |
ssl |
false |
true |
Whether to use SSL, true or false. |
caCertPath |
false |
true |
Path to truststore when using SSL. |
caCertPassword |
false |
true |
Password to truststore when using SSL. |
userCertPath |
false |
true |
Path to user certificate when using SSL. |
userCertPassword |
false |
true |
Password to user certificate when using SSL. |
timeoutMillis |
false |
true |
Connection and socket timeout in ms. |
connectionTimeoutMillis |
false |
true |
Connection timeout in ms. |
socketTimeoutMillis |
false |
true |
Socket timeout in ms. |
blockingSocketTimeoutMillis |
false |
true |
Blocking socket timeout in ms. |
maxTotal |
false |
true |
Maximum active connections in pool. |
maxIdle |
false |
true |
Maximum idle connections in pool. |
minIdle |
false |
true |
Minimum idle connections in pool. |
maxWait |
false |
true |
Maximum number of ms to wait for a connection to become available. |
timeBetweenEvictionRuns |
false |
true |
Time in ms between checking for idle connections in pool. |
blockWhenExhausted |
false |
true |
Block while waiting for connection to become available, true or false. |
testWhileIdle |
false |
true |
Enables sending a PING command periodically while the connection is idle, true or false. |
Message Structure
The message structure of received Redis stream entries is:
{ "stream": ..., "id": ..., value: {...} }
Example
The configuration below defines a Redis Streams ingress where entries are consumed from the specified Redis stream and relayed to vehicle agents.
{
"ingress": {
"type": "redis",
"settings": {
"host": "host.docker.internal",
"port": "6379",
"streams": "vehicles 0"
},
"relay": {
"agent": "vehicle",
"idExtractor": "$value.id",
"valueExtractor": "$value"
}
}
}
Nstream is licensed under the Redis Source Available License 2.0 (RSALv2).