Pipelining commands allows you to send a single http request with multiple
commands. Keep in mind, that the execution of pipelines is not atomic and the
execution of other commands can interleave.
Copy
Ask AI
import { Redis } from "@upstash/redis";const redis = new Redis({ /* auth */});const p = redis.pipeline();// Now you can chain multiple commands to create your pipeline:p.set("key", 2);p.incr("key");// or inline:p.hset("key2", "field", { hello: "world" }).hvals("key2");// Execute the pipeline once you are done building it:// `exec` returns an array where each element represents the response of a command in the pipeline.// You can optionally provide a type like this to get a typed response.const res = await p.exec<[Type1, Type2, Type3]>();
For more information about pipelines using REST see
here.If you wish to benefit from pipeline automatically,
you can simply enable auto-pipelining to make your redis client
handle the commands in batches in the background. See
the Auto-pipelining page.
Remember that the pipeline is able to send multiple commands at once but
can’t execute them atomically. With transactions, you can make the commands
execute atomically.
Copy
Ask AI
import { Redis } from "@upstash/redis";const redis = new Redis({ /* auth */});const p = redis.multi();p.set("key", 2);p.incr("key");// or inline:p.hset("key2", "field", { hello: "world" }).hvals("key2");// execute the transactionconst res = await p.exec<[Type1, Type2, Type3]>();