I’m using the Redis node in n8n and I noticed that TTL can only be set when using the SET operation.
However, when I use LIST operations (like LPUSH / RPUSH), there is no TTL field available in the node UI.
In Redis, TTL is applied at the key level, so logically the same key used for a LIST should also support TTL.
My use case requires:
Writing data to a Redis LIST
Ensuring that the LIST key expires automatically after a certain time
Currently, the Redis node does not expose TTL for LIST operations.
What is the recommended or correct approach in n8n for this scenario?
Should I:
Use a separate Redis operation (like EXPIRE) after the LIST write?
Handle TTL via a different node or workaround?
Or is this a known limitation by design in the Redis node?
I’d like to understand the best practice here, not just a hacky solution.
The Redis node limitation is by design. In n8n, TTL is only exposed on the SET operation, even though Redis itself applies TTL at the key level.
The recommended approach is to explicitly manage TTL by:
Writing to the LIST using LPUSH / RPUSH
Calling a second Redis operation (EXPIRE) on the same key
This is the correct and supported pattern, not a workaround. It keeps data lifecycle explicit and predictable. If you need atomic behavior, you can also use a Lua script via the Redis node or an HTTP/CLI integration.
If this answers your question, please consider marking it as the solution.
Just to be precise based on my actual environment:
I’m using n8n Cloud v2.4.4 and in this version:
Redis node does not expose an EXPIRE operation
Redis node does not expose LPUSH / RPUSH explicitly
There is only a generic “Push data to a redis list” action
TTL is available only on SET
There is no way to call EXPIRE on an existing LIST key via the Redis node UI
So while the recommended pattern LPUSH → EXPIRE is absolutely correct at the Redis level,
it is not executable using only Redis nodes in this version of n8n.
The only working options right now are:
HTTP-based Redis APIs (e.g. Upstash REST)
CLI / external Redis execution
Lua scripts via external integration
This makes the limitation not just conceptual/UI, but a practical blocker for LIST + TTL patterns in n8n Cloud 2.4.4.
Posting this here so others don’t spend time looking for Redis → EXPIRE or LPUSH/RPUSH options that are not available in this version.
Thanks again for the Redis-side explanation — the gap is clearly on the current Redis node surface.