如何在redis中高效地设置多个相关键?



我想在bash脚本中执行以下命令:

num_total_keys=0x1FFFF
for ((i = 0; i <= $num_total_keys; i++))
do
redis-cli SET some_prefix:$i True > /dev/null
done
然而,当我执行这个时,它花了很长时间。有没有更有效的方法?
经验法则:

如果你的命令接受流水线数据/指令;不要在shell循环中重复运行命令,而是在将其作为单个调用管道连接到命令之前构建所有命令,如下所示:

#!/usr/bin/env sh
i=131071
while [ $i -ge 0 ]; do
printf 'SET some_prefix:%d Truen' $i
i=$((i - 1))
done | redis-cli --pipe

或者使用Bash的大括号展开:

printf 'SET some_prefix:%d Truen' {131071..0} | redis-cli --pipe

最新更新