Documentación: Nodo Memory Set¶
Descripción General¶
El nodo Memory Set almacena un valor en Redis bajo una clave, con TTL (tiempo de vida) opcional. Es parte del conjunto de nodos de memoria (memorynodes) que utilizan Redis como almacén de datos compartido entre ejecuciones de automatizaciones. Use este nodo cuando necesite guardar un valor para usarlo después con Memory Get, Memory Check u otros procesos.
Tipo de nodo: memory_set
Clase: action
Paquete: pkg/automationnode/memorynodes
¿Cuándo usar este nodo?¶
Use este nodo cuando necesite:
- Almacenar datos calculados o recibidos para reutilizarlos en la misma automatización u otras
- Implementar caché con expiración usando
ttlpara datos temporales (por ejemplo, tokens, sesiones) - Compartir datos entre ejecuciones de automatizaciones (los valores en Redis persisten entre ejecuciones)
Configuración del Nodo¶

El nodo requiere clave y valor, y opcionalmente TTL. Puede configurarlo en la vista Form o en el JSON Editor.
Estructura JSON (Parámetros de entrada)¶
{
"key": "",
"value": "",
"ttl": ""
}
Campos Requeridos¶
| Campo | Tipo | Descripción |
|---|---|---|
key |
string | La clave bajo la cual se almacenará el valor en Redis |
value |
string | El valor a almacenar |
Campos Opcionales¶
| Campo | Tipo | Descripción |
|---|---|---|
ttl |
string | Tiempo de vida en segundos. Por defecto "0" (sin expiración) |
ttl = "0"o vacío: la clave no expira.ttl = "3600": la clave expira en 1 hora (3600 segundos).
Los campos pueden definirse con templates, por ejemplo: {{trigger.output_field}}.
Ejemplo de configuración¶
{
"key": "session_data",
"value": "datos_de_sesion_123",
"ttl": "3600"
}
Salidas (Output)¶
El nodo produce un objeto con la clave y el valor almacenados:
| Campo | Tipo | Descripción |
|---|---|---|
key |
string | La clave utilizada |
value |
string | El valor almacenado |
Ejemplo de salida¶
{
"key": "session_data",
"value": "datos_de_sesion_123"
}
Puede referenciar esta salida en nodos posteriores mediante expresiones de template, por ejemplo {{memory_set.key}}, {{memory_set.value}}.
Conectores (Connectors)¶
| Conector | Descripción |
|---|---|
continue |
Se usa siempre que la ejecución finaliza correctamente |
En caso de error, el flujo depende de la configuración OnError del nodo.
Validación¶
keydebe ser un string no vacío.valuedebe ser un string no vacío.ttlno se valida en la fase de validación; si se proporciona, debe ser un entero válido en string (por ejemplo"3600"). Un valor no numérico provocará error durante la ejecución.
Dependencias¶
- Redis: El nodo utiliza
redis_singleton.GetRedisProducer(). Se requiere configuración de Redis en las variables de entorno (REDIS_URL,REDIS_PASSWORD).
Comportamiento ante errores¶
- Si
ttlno es un número válido, la ejecución falla. - Si Redis no está disponible o falla la operación
SET, la ejecución falla.
Nodos relacionados¶
| Nodo | Descripción |
|---|---|
Memory Get (memory_get) |
Recupera un valor; falla si la clave no existe |
Memory Check (memory_check) |
Comprueba si una clave existe y obtiene valor y TTL |
Uso típico¶
- Guardar datos para reutilización: Almacenar un valor calculado o recibido para usarlo más adelante en la misma automatización o en otras.
- Caché con expiración: Usar
ttlpara datos temporales (por ejemplo, tokens, sesiones). - Compartir entre ejecuciones: Los valores en Redis persisten entre ejecuciones de automatizaciones.
Flujo de ejemplo¶
[Trigger] → [Memory Set (key: "token", value: {{http_response.body}}, ttl: "7200")] → [Siguiente nodo]
Patrón caché: Set + Check + Get¶
[Memory Check (key: "cache_key")]
├─ not_in_memory → [Calcular valor] → [Memory Set] → [Usar valor]
└─ in_memory → [Memory Get o usar output de Check]
Estructura interna (Referencia para desarrolladores)¶
El nodo se registra en pkg/nodelinker/node_linker.go:
"memory_set": memorynodes.NewMemorySetAutomationNode,
type MemorySetNode struct {
Key string
Value string
TTL time.Duration // TTL en segundos, 0 = sin expiración
}
type MemorySetAutomationNode struct {
automation.AutomationNode
MemorySetNode MemorySetNode
logger *zap.SugaredLogger
}