在 redis-cli
中,可以通过以下几种方式一次性执行多条 Redis 指令:
1. 使用管道(Pipeline)
通过 echo
+ 管道符(|
)将多条命令传递给 redis-cli
:
echo -e "SET key1 value1\nGET key1\nDEL key1" | redis-cli
- 说明:
-e
参数允许echo
解析换行符(\n
)。
- 每条命令用换行分隔,按顺序执行。
2. 使用 --pipe
批量提交
适合大规模数据导入(格式需符合 Redis 协议):
cat commands.txt | redis-cli --pipe
- 文件格式(如
commands.txt
):
每行一条命令,例如:SET key1 value1 SET key2 value2 GET key1
3. 多命令单行执行
用分号(;
)分隔多条命令:
redis-cli SET key1 value1; GET key1; DEL key1
- 注意:分号在 Shell 中有特殊含义,可能需要转义或加引号:
redis-cli "SET key1 value1; GET key1"
4. Lua脚本
通过 EVAL
执行原子性操作:
redis-cli EVAL "redis.call('SET', 'key1', 'value1'); return redis.call('GET', 'key1')" 0
5. Redis事务(MULTI/EXEC)
在交互式模式下开启事务:
redis-cli MULTI; SET key1 value1; GET key1; EXEC
注意事项
- 性能:管道(Pipeline)或
--pipe
适合大批量操作,减少网络往返时间。
- 原子性:Lua脚本或事务能保证原子性,但普通多命令无原子性保证。
根据需求选择合适的方式即可!
内容由零声教学AI助手提供,问题来源于学员提问